XSDファイルがあります:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="someNameSpace"
xmlns="someNameSpace"
elementFormDefault="qualified">
...
</xs:schema>
Java コードの場合:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringElementContentWhitespace(true);
dbf.setIgnoringComments(true);
dbf.setFeature("http://apache.org/xml/features/validation/schema", true);
dbf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
dbf.setAttribute("http://apache.org/xml/properties/schema/external-schemaLocation", "someNameSpace file:///home/.../schema.xsd");
DocumentBuilder builder = dbf.newDocumentBuilder();
builder.setErrorHandler(new SomeHandlerImpl());
Document doc = builder.parse(input);
入力は次で始まるファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<projekt xmlns="someNameSpace">
名前空間を削除してhttp://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation
代わりhttp://apache.org/xml/properties/schema/external-schemaLocation
にプロパティを使用すると、機能します。しかし、名前空間では、どうすればよいかまったくわかりません。