Referencia de esquema XML
-
09-10-2019 - |
Pregunta
Tengo dos esquemas XML. Primero (A.xsd
) se encuentra en un archivo jar de la biblioteca (mylib.jar
) y el segundo (B.xsd
) está en mi proyecto.
Quiero importar A.xsd
en el B.xsd
y validar XML entrante a través de Jaxb2Marshaller
Validador incrustado.
Sin embargo, no puedo hacer que funcione correctamente: parece que el validador interno de XML de Jaxb2Marshaller
no entiende las referencias a archivos en JAR-Files (solo quiero escribir algo como <xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">
).
¿Cómo se podría solucionar? ¿Cómo se podría hacer referencia a los esquemas de la biblioteca de un esquema de proyecto?
Solución
Consulte mi respuesta a una pregunta anterior sobre cómo se puede usar un resumen de recursos para resolver este problema:
Su implementación de Lsresourceresolver manejará la carga del esquema del classpath y la convertirá con el resultado apropiado.
Otros consejos
Deberá configurar su propio resolución. Nada en Jaxb usará classpath:.
Hay una muestra de Jaxb que muestra este tipo de cosas.
ClassPath: no es una URL válida para la ubicación del esquema. Tendrás que usar Catálogos XML Para cargar esquemas de frascos.