Tengo un archivo xml creado usando jaxb. Necesito validarlo contra un documento xsd. ¿Es posible hacer la validación sin descalificación? Necesito luego imprimir los errores en el archivo xml.Validar xml creado usando jaxb contra un archivo xsd
Respuesta
Sí, puede usar el validador que se encuentra en Java desde 1.5. aquí está la referencia doc
Además de esto, puede usar la API basada en dom o en flujo para validar su documento XML contra el archivo xsd. Si desea utilizar la API SAX para su tarea, entonces, escuchar es el 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());
}
contrario, puede utilizar DOM, DOM4J o API XOM. Para mayor referencia, puede ver here.
También hay un answer relacionado en stackoverflow.
Puede validar también antes de la clasificación: fuente de JAXBSource = nuevo JAXBSource (jaxbContext, objectBeingMarshalled); \t \t validator.validate (fuente); – Ritesh
obtengo esta excepción sax de excepción: el objetivo de instrucción de procesamiento que coincide con "[xX] [mM] [lL]" no está permitido. – AutoMEta
significa que en el inicio de XML tiene espacio, elimina espacio o cualquier otra cosa al comienzo de su XML, siga el enlace: http: //gonithethinker.blogspot.com/2012/06/processing-instruction-target-matching .html @AutoMeta – Forhad
- 1. Validar XML contra el software XSD
- 2. Error al validar XML contra XSD
- 3. realizando validación xml contra xsd
- 4. Validar un xml contra xsd con JS/jQuery
- 5. Validar XML contra XSD en un único método
- 6. Validar un esquema XSD usando XSD
- 7. ¿Cómo validar un archivo xml contra un esquema XSD utilizando la biblioteca de Amara en Python?
- 8. La forma más eficaz de validar XML contra XSD
- 9. Validar XML con XSD
- 10. Validar XML usando múltiples XSD en Ruby
- 11. puede validar xsd contra xml en vs 2010?
- 12. ¿Cómo validar xml contra xsd y obtener errores * ALL *?
- 13. ¿Cómo validar big xml contra el esquema xsd?
- 14. Usando .NET para validar XML contra un esquema
- 15. Cómo obtener errores más específicos al validar XML contra un XSD usando java.xml.validator
- 16. Validar un archivo XML ENORME
- 17. ¿Es posible validar xml contra xsd usando código en tiempo de ejecución?
- 18. ¿Validar un esquema XSD?
- 19. Validar un XML contra un XSD en Java/Obtener un control del schemaLocation
- 20. ¿Cómo validar un archivo xml contra un archivo xsd dado mientras lo analiza con un analizador de saxofón?
- 21. Cómo validar xml contra un archivo DTD en Python
- 22. Generar archivo XML usando el archivo XSD
- 23. ¿Cómo validar un archivo XML usando Java con un XSD que tenga un include?
- 24. suministrados al validar XML con XSD
- 25. ¿Por qué JAXB no quiere validar
- 26. ¿Cómo uso PowerShell para validar archivos XML en un XSD?
- 27. ¿Puedo validar una expresión XPath contra un esquema XML?
- 28. Parse XML usando un XSD en PHP
- 29. Validar XML contra XSD e ignorar el orden de los elementos secundarios
- 30. JAXB Unmarshall Creado un objeto vacío
Una de las principales ventajas de generar un código de enlace de 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? –
Puede establecer Schema y ValidationEventHandler en el Marshaller. Validará contra el esquema durante la clasificación. Consulte http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Marshaller.html#setSchema(javax.xml.validation.Schema) – Ritesh