如果 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 檔案。
此規則的自動修正程式會使用適用於指定 schemaLocation的值來更新不相容的名稱空間。 將自訂配置複製到應用程式建置檔,以啟用修正程式自動化。
如果您考慮使用隨 Java EE 7 一起提供的 CDI 1.2,請參閱 Contexts and Dependency Injection 1.2 行為變更。