Dacă un fişier beans.xml include decoratori sau interceptori, trebuie să fie folosită o schemă validă pentru instanţierea corectă. Spațiul de nume din beans.xml fișierul trebuie să se potrivească cu specificațiile pentru versiunea CDI aplicabilă.
Această regulă scanează beans.xml fișiere pentru a vedea dacă este furnizat un spațiu de nume valid pe fișierul xmlns atribut.
Exemplul următor arată un fişier valid beans.xml pentru specificaţia CDI 1.0.
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
Exemplul următor arată un fişier valid beans.xml pentru specificaţia CDI 1.2.
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="all" version="1.1">
</beans>
Dacă un spaţiu de nume este furnizat şi nu se potriveşte cu nici o specificaţie, serverul aruncă o excepţie când procesează fişierul beans.xml. Puteţi dezactiva validarea prin setarea proprietăţii JVM următoare:
org.jboss.weld.xml.disableValidating=true
Dacă nu este furnizat spaţiul de nume, regula nu semnalează fişierul beans.xml.
Dacă consideraţi utilizarea CDI 1.2 funizat cu Java EE 7, vedeţi Modificări de comportament ale Contexts and Dependency Injection 1.2.