1

cvc-elt.1: 要素 'countries' の宣言が見つかりません

私はxmlスキーマ検証の新しい学習者であり、上記のエラーが見つかりました

ファイルスキーマ.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"
、同じエラーに直面しています。

エラーを見つけてください。
前もって感謝します。

4

2 に答える 2

2

わたしにはできる。検証を実行している方法と関係があるに違いないと思います.スキーマまたはソースドキュメントに問題はありません.

于 2013-06-15T18:10:45.390 に答える
0

あなたの例では、それを実行するために必要なのは、この行のコメントを外すことだけだと思います:

//f.setNamespaceAware(true);

NB あなたの間違いは私を助けました :)、そして私は幸せです。

于 2015-04-28T08:01:42.310 に答える