it-swarm-es.tech

¿Alguna herramienta para generar un esquema XSD a partir de un documento de instancia XML?

Estoy buscando una herramienta que tome un documento de instancia XML y genere un esquema XSD correspondiente.

Sin duda reconozco que el esquema XSD generado estará limitado en comparación con la creación manual de un esquema (probablemente no manejará elementos opcionales o repetitivos, o restricciones de datos), pero al menos podría servir como un punto de inicio rápido.

145
Matt Dillard

la herramienta de inferencia de Microsoft XSD es una buena solución gratuita. Muchas herramientas de edición XML, como XmlSpy (mencionada por @Garth Gilmour) o OxygenXML Editor también tienen esa característica. Aunque son bastante caros. BizTalk Server también tiene una herramienta de inferir XSD también.

edición: acabo de descubrir la clase .net XmlSchemaInference , así que si estás usando .net, deberías considerar eso

65
Danimal

Puede usar una opción de código abierto y multiplataforma: inst2xsd de Apache's XMLBeans . Lo encuentro muy útil y fácil.

Solo descarga, descomprime y juega (requiere Java).

54
Dario

Trang es la mejor opción aquí. Código abierto y multiplataforma (aunque Java es requerido)

Desde el sitio web de Trang:

Trang convierte entre diferentes lenguajes de esquema para XML. Es compatible con los siguientes idiomas.

  • RELAX NG (sintaxis XML)
  • RELAX NG sintaxis compacta
  • XML 1.0 DTDs
  • Esquema XML del W3C

Un esquema escrito en cualquiera de los lenguajes de esquema admitidos se puede convertir a cualquiera de los otros lenguajes de esquema admitidos, excepto que el Esquema XML de W3C solo se admite para salida, no para entrada.

Trang también puede inferir un esquema de uno o más documentos XML de ejemplo.

Enlace de descarga

51
Derferman

En VS2010, si carga un archivo XML en el editor, haga clic en el menú XML >> Crear esquema.

15
Nathan Donnellan

También hay XML schema learner que está disponible en Github .

Puede tomar múltiples archivos xml y extraer un XSD común de todos esos archivos .

11
edorian

Si tiene instalado .Net, una herramienta para generar esquemas y clases XSD ya está incluida de manera predeterminada.
Para mí, la herramienta XSD se instala bajo la siguiente estructura. Esto puede variar dependiendo de su directorio de instalación.

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.

xsd.exe -
   Utility to generate schema or class files from given source.

xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <Assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

Normalmente, las clases y los esquemas que genera esta herramienta funcionan bastante bien, especialmente si los va a consumir en un lenguaje .Net

Normalmente tomo el documento XML que busco, lo empujo a través de la herramienta XSD con el indicador /o:<your path> para generar un esquema (xsd) y luego empujo el archivo xsd a través de la herramienta usando los indicadores /classes /L:VB (or CS) /o:<your path> para obtener clases que puedo importar y uso en mi día a día .Net proyectos

10
Pat Hermens

Si todo lo que quieres es XSD, LiquidXML tiene una versión gratuita que hace XSD y tiene una GUI para que puedas modificar la XSD si lo deseas. De todos modos hoy en día escribo mis propios XSD a mano, pero todo es gracias a esta aplicación.

http://www.liquid-technologies.com/

6
Robert Gould

si está trabajando en el mundo Java - intelliJ idea también tiene una amplia compatibilidad con xml, incluida la generación xsd y samle xml de xsd generation, y con los complementos puede obtener depuradores xslt. - especialmente Niza si planeas usar herramientas como jaxb después.

4
Andreas Petersson

Altova XmlSpy lo hace bien: puede encontrar una descripción general aquí

3
Garth Gilmour

Este es un hilo antiguo, pero pensé que podría ser útil publicar este enlace: acabo de encontrar esta herramienta: xsd-gen Generar esquema XML a partir de XML

y solo hizo lo que necesitaba.

3
v_e