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 fișiere pentru a vedea dacă spațiul de nume furnizat în fișierul xmlns atributul se potrivește cu locația corespunzătoare a schemei 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.
Fixul automat pentru această regulă actualizează namespace-urile incompatibile cu valoarea corespunzătoare pentru a specifica schemaLocation. Copiați configurația personalizată pe fișierul de build al aplicației pentru a activa automatizarea corectării.
Dacă aveţi în vedere utilizarea CDI 1.2 furnizat cu Java EE 7, vedeţi Contexts and Dependency Injection 1.2 behavior changes.