我是 XML 的新手。
我使用 Apache Commons XMLConfiguration 进行配置。
我需要一个基于模式的验证。
xsd 位于我的 java 项目的资源文件夹中。
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>
谁能帮我?