open - Esquema RelaxNG vs XML
open document xml (5)
Tengo un proyecto en el que estoy utilizando RelaxNG ( jing ) para validar xml. Me gusta la sintaxis de RelaxNG, pero la mayoría de las herramientas que tengo funcionan con el esquema XML (en realidad, no creo que tenga una herramienta que lo haga, excepto jing). ¿Estoy cometiendo un error de diseño y soporte futuro utilizando RelaxNG cuando la mayoría del soporte parece estar relacionado con el esquema XML? ¿Debería seguir usando RelaxNG y hacer que todos los demás lo aprendan (patear y gritar si es necesario, j / k)? ¿Debo cambiar al esquema xml debido al soporte de herramientas?
Gracias.
Escribir sabores ligeramente limitados de RELAX NG y luego usar Trang para convertir automáticamente a XSD (que nunca tocamos o observamos) funciona muy bien para nosotros.
Estoy de acuerdo en que depende exactamente de lo que necesite usar esquemas. Aquí hay un punto más: si todo lo que necesita es validación, sí, simplemente vaya con RelaxNG: es bueno para ese propósito.
Pero si planea realizar enlace de datos (como JAXB) u otros tipos de tareas de generación de código, el Esquema XML es (por desgracia ...) una opción mucho mejor, ya que está más diseñado para el enfoque de objeto a / desde-xml que RelaxNG. . Y a la inversa, no es tan bueno para la validación de XML; Especialmente teniendo en cuenta la complejidad añadida. De hecho, se podría llamar al esquema XML un sistema de tipos más que un esquema para XML.
Las respuestas son un poco cliché: depende.
¿En qué, puede preguntar? En herramientas que probablemente usen tus usuarios. Y si depende de sus usuarios, puede perderlos si la falta de buenas herramientas los ahuyenta. Como el esquema XML es, según mi experiencia, muy utilizado, es posible que desee reconsiderar su decisión de seguir adelante con Relax NG. Es mejor y más fácil de entender que el esquema XML, pero eso no significa que hará que su proyecto sea exitoso.
Si quieres arriesgar un poco, sigue adelante con Relax NG. Y durante cada paso de su desarrollo, intente convertir el esquema Relax NG a XML utilizando una herramienta como Trang . En caso de que un día decida que Relax NG no vale la pena y sabe que tiene una copia de seguridad razonable.
Schematron es también otra opción razonable, con una potente validación basada en xpath ...
sin embargo, mi equipo generalmente construye todo en Relax / NG compact (para una mejor legibilidad) y convierte según sea necesario a XSD (por ejemplo, para validación basada en lib), e ignora el XSD de lo contrario.
:)
esto simplemente funciona.
Todo depende de a quién tengas que convencer. Su análisis es bastante correcto: RelaxNG es un mejor lenguaje para la validación pero tiene mucho menos soporte de herramientas. Entonces, ¿qué herramientas necesitas realmente?