我的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
答案 0 :(得分:1)
表示test.xml没有credits
元素。如果这是可以接受的,请设置minOccurs="0"