Buscar un esquema válido en beans.xml

Si un archivo beans.xml incluye decoradores o interceptores, debe utilizarse un esquema válido para una instanciación apropiada. La ubicación del espacio de nombres y esquema en el archivo beans.xml debe coincidir con la especificación de la versión de CDI aplicable.

Esta regla explora archivos beans.xml para ver si se proporciona un espacio de nombres válido en el atributo xmlns. Si el espacio de nombres es válido, la regla también verifica que la ubicación de esquema correspondiente en el atributo schemaLocation sea correcta.

El ejemplo siguiente muestra un archivo beans.xml válido para la especificación de 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> 

El ejemplo siguiente muestra un archivo beans.xml válido para la especificación de 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>
 

Si se proporciona un espacio de nombres y no coincide con ninguna de las dos especificaciones, el servidor emite una excepción al procesar el archivo beans.xml. Puede inhabilitar la validación estableciendo la siguiente propiedad JVM:

		
	org.jboss.weld.xml.disableValidating=true

Si no se proporciona ningún espacio de nombres, la regla no marca el archivo beans.xml.

El arreglo automatizado para esta regla actualiza espacios de nombres incompatibles con el valor adecuado para la schemaLocationespecificada. Copie la configuración personalizada en el archivo de compilación de la aplicación para habilitar la automatización de arreglos.

Si va a utilizar el CDI 1.2 proporcionado con Java EE 7, consulte Cambios en el comportamiento de Contexts and Dependency Injection 1.2.