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 这怎么可能?在这里完全糊涂了。谷歌搜索了几个小时还没有。

谢谢!

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