一些巨大的基本事情错误 - “找不到元素X”

时间:2011-03-03 18:30:08

标签: xml xsd schema saxparser saxparseexception

我的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:找不到元素'信用'的声明”

什么? :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

1 个答案:

答案 0 :(得分:1)

表示test.xml没有credits元素。如果这是可以接受的,请设置minOccurs="0"