Как проверить XML по его XML-схеме без локального файла XSD? - PullRequest
1 голос
/ 08 марта 2011

Это мой XML:

<?xml version="1.0"?>
<root xmlns="http://example.com/first-schema.xsd"
  xmlns:f="http://example.com/second-schema.xsd">
  <f:foo>test</f:foo>
</root>

Теперь я хочу проверить, является ли этот XML допустимым для XMLSchema.У меня нет этих first-schema.xsd и second-schema.xsd файлов локально.Более того, я ничего о них не знаю.Я просто хочу убедиться, что мой XML-документ действителен для его схем.Можно ли это сделать на Java?

1 Ответ

3 голосов
/ 08 марта 2011

Для этого можно использовать API javax.xml.validation .

SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
URL schemaURL = // The URL to your XML Schema; 
Schema schema = sf.newSchema(schemaURL); 
Validator validator = schema.newValidator();
DOMSource source = new DOMSource(xmlDOM);
validator.validate(source);

Пример ниже демонстрирует, как проверить объектную модель JAXB по схеме, но вы увидите, что JAXBSource легко заменить DOMSource для DOM:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...