У меня есть требование выполнить некоторую проверку входящего фрагмента XML с использованием группы схем.
Все эти схемы совместно используют одно и то же targetNamespace, но разделены на разные файлы .xsd.
Моя java-программа загружает каждый xsd-файл в массив InputSource [] и передает их в SAX Parser (свойство SCHEMA_SOURCE).
Однако при вызове метода XMLReader.parse я получаю следующую трассировку стека:
**
java.lang.IllegalArgumentException: при использовании массива объектов в качестве значения свойства SCHEMA_SOURCE никакие две схемы не должны совместно использовать одно и то же targetNamespace.
в org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource (неизвестный источник)
в org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema (Неизвестный источник)
в org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar (неизвестный источник)
в org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement (неизвестный источник)
в org.apache.xerces.impl.xs.XMLSchemaValidator.startElement (неизвестный источник)
в org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement (неизвестный источник)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl $ NSContentDispatcher.scanRootElementHook (неизвестный источник)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDispatcher.dispatch (неизвестный источник)
в org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument (неизвестный источник)
в org.apache.xerces.parsers.XML11Configuration.parse (неизвестный источник)
в org.apache.xerces.parsers.XML11Configuration.parse (неизвестный источник)
в org.apache.xerces.parsers.XMLParser.parse (Неизвестный источник)
at org.apache.xerces.parsers.AbstractSAXParser.parse (Неизвестный источник)
**
Мне нужно проанализировать XML, используя схемы, которые совместно используют пространство имен. Можно ли это сделать и избежать вышеуказанной ошибки?
Любая форма помощи или совета будет оценена
Спасибо