私の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