Verificar se há um namespace válido em beans.xml

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

Essa regra examina os arquivos beans.xml para verificar se um namespace válido é fornecido no arquivo xmlns atributo.

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.

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