Проверить допустимость схемы в beans.xml

Если файл beans.xml включает декораторы или перехватчики, то для правильного создания экземпляра необходимо использовать корректную схему. Пространство имен и расположение схемы в файле beans.xml должны соответствовать требованиям спецификации применяемой версии CDI.

Это правило проверяет правильность пространства имен, указанного в атрибуте xmlns, в файлах beans.xml. Если пространство имен допустимо, правило также проверяет правильность соответствующего расположения схемы в атрибуте schemaLocation.

Ниже приведен пример допустимого файла beans.xml для спецификации 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> 

Ниже приведен пример допустимого файла beans.xml для спецификации 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>
 

Если пространство имен задано, но не соответствует ни одной спецификации, то при обработке файла beans.xml сервер генерирует исключительную ситуацию. Для отключения проверки настройте следующее свойство JVM:

		
	org.jboss.weld.xml.disableValidating=true

Если пространство имен не задано, правило не отмечает файл beans.xml.

Автоматическое исправление для этого правила обновляет несовместимые пространства имен со значением, соответствующим указанному schemaLocation. Скопируйте пользовательскую конфигурацию в файл компоновки приложения, чтобы включить автоматизацию исправлений.

Если вы планируете использовать технологию CDI 1.2, предоставляемую в Java EE 7, обратитесь к документу Изменение принципов работы Contexts and Dependency Injection 1.2.