私はXMLの初心者です。
構成に Apache Commons XMLConfiguration を使用しています。
スキーマベースの検証が必要です。
xsd は、私の Java プロジェクトの resources フォルダーにあります。
xml と xsd が同じ場所にありません。
ドキュメントに従ってください(DTDの例のみを報告しています)。次のコードを生成します。
URL urlXsd = getClass().getResource("config.xsd");
DefaultEntityResolver resolver = new DefaultEntityResolver();
resolver.registerEntityId("configuration", urlXsd);
XMLConfiguration xmlConfig = new XMLConfiguration();
xmlConfig.setEntityResolver(resolver);
xmlConfig.setSchemaValidation(true);
xmlConfig.load(new File("config.xml"));
次の例外が発生します。
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 16; cvc-elt.1: Cannot find the declaration of element 'configuration'.
私のconfig.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="reader">
</xs:element>
<xs:element name="writer">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
私のconfig.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<configuration>
<reader>
</reader>
<writer>
</writer>
</configuration>
誰でも私を助けることができますか?