Dacă un fişier beans.xml include decoratori sau interceptori, trebuie să fie folosită o schemă validă pentru instanţierea corectă. Spaţiu de nume şi locaţia din fişierul beans.xml trebuie să se potrivească cu specificaţia pentru versiunea CDI aplicabilă.
Această regulă scanează beans.xml pentru a vedea dacă spațiul de nume furnizat în xmlns
atributul corespunde locația schemei corespunzătoare de pe
schemaLocation 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ă nu este furnizat spaţiul de nume, regula nu semnalează fişierul beans.xml.
Soluția automată pentru această regulă actualizează spațiile de nume incompatibile cu valoarea corespunzătoare pentru schemaLocation. Copiați configurația personalizată pe fișierul de build al aplicației pentru a activa automatizarea corectării.
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.