cvc-elt.1:找不到元素'国家'的声明

时间:2013-06-15 15:37:42

标签: java xml xsd jaxp

cvc-elt.1:找不到元素'countries'的声明

我是xml架构验证的新学习者,并发现上述错误 与

fileSchema.xsd:

> <xs:schema version="1.0"
>            xmlns:xs="http://www.w3.org/2001/XMLSchema" 
>            targetNamespace="http://localhost:8080/ajaxprac"
>            xmlns="http://localhost:8080/ajaxprac"
>            elementFormDefault="qualified">
>     
>     <xs:element name="countries" type="xs:string"/>
>      </xs:schema>

file.xml

<countries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns="http://localhost:8080/ajaxprac"
           xsi:schemaLocation="http://localhost:8080/ajaxprac fileSchema.xsd">
    This is the xml with just root element
</countries>

出厂设置

DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
        f.setValidating(true);
        //f.setNamespaceAware(true);
        try {
            f.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
        } catch (IllegalArgumentException e) {
            System.out.println("Exception Occured: "+e.getMessage());
        }

我用过 -test.namespace
-urn:Test.Namespace

而不是"http://localhost:8080/ajaxprac"
但面临同样的错误。

请找出错误 在此先感谢。

2 个答案:

答案 0 :(得分:2)

它对我有用。我认为它必须与您运行验证的方式有关:架构或源文档没有任何问题。

答案 1 :(得分:0)

我认为在你的例子中,你需要让它运行的唯一一件事是取消注释这一行:

//f.setNamespaceAware(true);

N.B。你的错误帮助了我:),我感到高兴。