Verificar um esquema válido no beans.xml

Se um arquivo beans.xml incluir decoradores ou interceptores, um esquema válido deverá ser usado para instanciação adequada. O namespace e o local de esquema no arquivo beans.xml devem corresponder à especificação para a versão de CDI aplicável.

Essa regra varre os arquivos beans.xml para ver se um namespace válido é fornecido no atributo xmlns. Se o namespace for válido, a regra também verifica se o local de esquema correspondente no atributo schemaLocation está correto.

O exemplo a seguir mostra um arquivo beans.xml válido para a especificação 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> 

O exemplo a seguir mostra um arquivo beans.xml válido para a especificação 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>
 

Se um namespace for fornecido e não corresponder à especificação, o servidor lançará uma exceção ao processar o arquivo beans.xml. É possível desativar a validação configurando a propriedade JVM a seguir:

		
	org.jboss.weld.xml.disableValidating=true

Se nenhum namespace for fornecido, a regra não sinaliza o arquivo beans.xml.

A correção automatizada para esta regra atualiza namespaces incompatíveis com o valor apropriado para o schemaLocationespecificado. Copie a configuração customizada para seu arquivo de construção do aplicativo para ativar a automação de correção.

Se você está considerando usar o CDI 1.2 fornecido com o Java EE 7, consulte Mudanças de comportamento do Contexts and Dependency Injection 1.2.