Pregunta sobre jaxb2, jaxb, xml-validation – Valide el xml creado usando jaxb contra un archivo xsd

9

Tengo un archivo xml creado usando jaxb. Necesito validarlo contra un documento xsd. ¿Es posible simplemente hacer la validación sin demolición? Necesito imprimir los errores en el archivo xml.

Puede establecer Schema y ValidationEventHandler en el propio contador de referencias. Se validará contra el esquema durante el cálculo. Verdocs.oracle.com/javase/6/docs/api/javax/xml/bind/… Ritesh
Una de las principales ventajas de generar un código de enlace desde xsd y luego usar el código para crear un xml de instancia es generar un xml válido y bien formado. No estoy seguro de por qué quieres validarlo de nuevo? Aravind R. Yarram

Tu respuesta

1   la respuesta
11

Sí, puedes usar un validador encontrado en java desde 1.5. aqui esta la referenciaDoc

Aparte de esto, puede usar API basada en dom o basada en flujo para validar su documento XML contra el archivo xsd. Si desea utilizar la API de SAX para su tarea, entonces escuche el siguiente ejemplo:

try {
    String schemaLang = "http://www.w3.org/2001/XMLSchema";

    SchemaFactory factory = SchemaFactory.newInstance(schemaLang);

    Schema schema = factory.newSchema(new StreamSource("sample.xsd"));
    Validator validator = schema.newValidator();

    validator.validate(new StreamSource("test.xml"));

} catch (SAXException e) {
    System.out.println(" sax exception :" + e.getMessage());
} catch (Exception ex) {
    System.out.println("excep :" + ex.getMessage());
}

De lo contrario, puede utilizar DOM, DOM4J o XOM API. Para mayor referencia puedes veraquí.

Hay una relacionadaresponder en stackoverflow también.

estoy recibiendo esta excepción de saxo de ejecución: El objetivo de la instrucción de procesamiento que coincide con "[xX] [mM] [lL]" no está permitido. AutoMEta
También puede validar antes de ordenar: JAXBSource source = new JAXBSource (jaxbContext, objectBeingMarshalled); validator.validate (fuente); Ritesh
significa que en su inicio de XML tiene algún espacio, eliminar espacio o cualquier otra cosa al comienzo de su XML, siga el enlace:gonithethinker.blogspot.com/2012/06/… @AutoMeta Forhad

Preguntas relacionadas