У меня есть следующий XSD-файл:
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
targetNamespace='http://www.wvf.com/schemas'
xmlns='http://www.wvf.com/schemas'
xmlns:acmewvf='http://www.wvf.com/schemas'>
<xs:element name='loft'>
</xs:element>
</xs:schema>
и следующий XML-файл:
<?xml version="1.0"?>
<acmewvf:loft xmlns:acmewvf="http://www.wvf.com/schemas"
xmlns="http://www.wvf.com/schemas">
</acmewvf:loft>
Когда я выполняю следующий код Java:
public void parse(InputStream constraints) {
final SchemaFactory schemaFactory = new XMLSchemaFactory();
final URL resource =
ClassLoader.getSystemClassLoader().getResource(SCHEMA_PATH);
final DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
Document doc = null;
factory.setSchema(schemaFactory.newSchema(resource));
final DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(constraints);
Я получаю следующее SAXException (в последней строке кода):
cvc-elt.1: не удается найти объявление
элемента 'acmewvf: loft'.
(Обратите внимание, что SCHEMA_PATH указывает на файл XSD, содержимое которого указано выше, а ограничения являются входным потоком для файла XML, содержимое которого также указано выше.)
Что здесь не так?