0

私のxml

<?xml version="1.0" encoding="ISO-8859-1"?>
<credits> 
</credits>

私のスキーマ

<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="credits">

  </xsd:element>

</xsd:schema>

そして、「SaxParseException:要素'credits'の宣言が見つかりません」と表示されます。

何?!:Pどうしてそれが可能ですか?ここでは絶対に混乱しています。まだ何時間もグーグルしています。

ありがとうSO!

        SchemaFactory schemaFactory = SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI );
        Schema schemaXSD = schemaFactory.newSchema( new File ( "test.xsd" ) );

        Validator v = schemaXSD.newValidator();
       DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  Document document = parser.parse( new File( "test.xml" ) );
        document.toString();
        DOMSource testSource = new DOMSource(document);
        v.validate( testSource );

編集:解決策を見つけました。グーグルはついに何かを生み出した。:P追加する必要がありました

factory.setNamespaceAware(true);

DocumentBuilderFactoryオブジェクトに。:D

4

1 に答える 1

1

test.xml に要素がないことを意味しcreditsます。これが許容される場合は、minOccurs="0"

于 2011-03-03T19:01:28.773 に答える