/ / Може ли един валидиращ маршалиран XML с JAXB 2.0? - java, валидиране, jaxb

Може ли да се валидира маркиран XML с JAXB 2.0? - java, валидиране, jaxb

Явно във версия 2 на JAXB - валидатораклас е оттеглен - това означава ли, че маршалърът автоматично валидира вашия XML? Ако това е така, не изглежда да се оплаквам от някои неправилни XML, които формирам! Може ли някой да ми даде съвет за това как мога да валидирам маршалиран XML, за да се уверя, че той съответства на XSD схемата.

Много благодаря.

Отговори:

27 за отговор № 1

Възможностите за валидиране са разширени в JAXB 2.0 чрез използването на рамката за валидиране на схемата JAXP 1.3.

Къде преди сте го направили:

unmarshaller.setValidating(true);

сега трябва да направите:

SchemaFactory sf = SchemaFactory.newInstance(
javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("myschema.xsd"));
unmarshaller.setSchema(schema);

Ако въведете нула в setSchema, деактивира валидирането.

Моля те, провери тази справка.


2 за отговор № 2

Ако търсите да проверите Java обектите генерират валиден XML според схема, погледнете проекта JAXB-Verification:

https://jaxb-verification.dev.java.net/

Това е JAXB RI плъгин към xjc, който ще генерира ObjectVerifier реализация за XML схемата. Това избягва да се налага маршализиране на Java обектите, за да се валидира XML.