Есть ли способ проверить дерево DOM XML в памяти в Java? - PullRequest
1 голос
/ 11 ноября 2009

Я создаю документ XML с использованием DocumentBuilderFactory и класса Document w3c.org.Я хочу проверить полученную структуру по XSD перед записью в файл.Я знаю, что могу установить DocumentBuilderFactory для проверки при его создании, но я бы предпочел не делать этого, поскольку я делаю с ним другие действия.

Спасибо.

1 Ответ

3 голосов
/ 11 ноября 2009

Похоже, что пакет javax.xml.validation обладает нужной вам функциональностью. Если ваш Document уже загружен в переменную с именем document , это должно помочь:

// create a SchemaFactory capable of understanding WXS schemas
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

// load a WXS schema, represented by a Schema instance
Source schemaFile = new StreamSource(new File("mySchema.xsd"));
Schema schema = factory.newSchema(schemaFile);

// create a Validator instance, which can be used to validate an instance document
Validator validator = schema.newValidator();

// validate the DOM tree
try {
    validator.validate(new DOMSource(document));
} catch (SAXException e) {
    // instance document is invalid!
}

С этой страницы:

http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/package-summary.html

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