6
Cómo validar un org.w3c.dom.Document
(ya analizado) en un esquema XML con JAXP?JAXP: cómo validar un org.w3c.dom.Document en un esquema XML
Cómo validar un org.w3c.dom.Document
(ya analizado) en un esquema XML con JAXP?JAXP: cómo validar un org.w3c.dom.Document en un esquema XML
Puede utilizar las API javax.xml.validation para esto.
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);
El siguiente ejemplo demuestra cómo validar un modelo de objeto JAXB con un esquema, pero se podrán ver que es fácil de reemplazar el JAXBSource con un DOMSource de DOM:
Gracias Blaise. Aunque no está directamente relacionado con la pregunta, me gustaría preguntarle otra: ¿Qué ocurre si un Esquema especificado (que ha pasado un StreamSource a SchemaFactory) incluye otro esquema que está disponible solo como un recurso de ClassLoader? Pasar dos StreamSource no funcionó, desafortunadamente. – MRalwasser
@MRalwasser - ver 'SchemaFactory.setResourceResolver'. hay todo tipo de información en los javadocs ... – jtahlborn
@jtahlbborn: gracias, esto funcionó. Pero: parece que al validar un documento de esa manera no se respetan los valores predeterminados del esquema, el documento y sus nodos permanecen intactos. – MRalwasser