beans.xml에서 올바른 스키마 확인

beans.xml 파일에 데코레이터 또는 인터셉터가 포함되는 경우 적절한 인스턴스 생성을 위해 올바른 스키마를 사용해야 합니다. beans.xml 파일의 네임스페이스 및 스키마 위치가 적용 가능한 CDI 버전의 스펙과 일치해야 합니다.

이 규칙은 beans.xml 파일을 스캔하여 xmlns 속성에서 올바른 네임스페이스가 제공되는지 확인합니다. 네임스페이스가 올바른 경우 이 규칙은 또한 schemaLocation 속성의 해당 스키마 위치가 올바른지 확인합니다.

다음 예는 CDI 1.0 스펙에 올바른 beans.xml 파일을 보여줍니다.


<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> 

다음 예는 CDI 1.2 스펙에 올바른 beans.xml 파일을 보여줍니다.


<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에 적합한 값으로 호환되지 않는 네임스페이스를 업데이트합니다. 수정사항 자동화를 사용으로 설정하려면 사용자 정의 구성을 애플리케이션 빌드 파일에 복사하십시오.

Java EE 7과 함께 제공되는 CDI 1.2의 사용을 고려 중인 경우 Contexts and Dependency Injection 1.2 동작 변경사항을 참조하십시오.