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


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

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

 145
Author: Matt Dillard, 2008-09-16

10 answers

La herramienta de inferencia de Microsoft XSD es una buena solución gratuita. Muchas herramientas de edición XML, como XMLSpy (mencionado por @Garth Gilmour) u OxygenXML Editor también tienen esta característica. Aunque son bastante caros. BizTalk Server también tiene una herramienta de inferencia XSD.

Editar: Acabo de descubrir la clase. net XmlSchemaInference, así que si estás usando. net deberías considerar que

 65
Author: Danimal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-01 20:25:19

Puede usar una opción de código abierto y multiplataforma: inst2xsd de XMLBeans de Apache. Me parece muy útil y fácil.

Solo tiene que descargar, descomprimir y reproducir (requiere Java).

 54
Author: Dario,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-08 18:12:58

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

Del sitio web de Trang:

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

  • RELAJAR NG (sintaxis XML)
  • RELAJAR la sintaxis compacta
  • XML 1.0 DTDs
  • W3C XML Schema

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

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

Enlace de descarga

 51
Author: Derferman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-14 15:12:53

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

 14
Author: Nathan Donnellan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-25 13:17:35

También es 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
Author: edorian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-06 09:53:18

Si tiene.Net instalado, una herramienta para generar esquemas y clases XSD ya está incluida de forma predeterminada.
Para mí, la herramienta XSD está instalada 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 esquemas que genera esta herramienta funcionan bastante bien, especialmente si vas a consumirlos en un lenguaje. Net

Normalmente tomo el documento XML que busco, lo presiono a través de la herramienta XSD con el /o:<your path> flag para generar un esquema (xsd) y luego volver a enviar el archivo xsd a través de la herramienta utilizando los flags /classes /L:VB (or CS) /o:<your path> para obtener clases que puedo importar y usar en mis proyectos. Net cotidianos

 10
Author: Pat Hermens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-17 23:29:11

Si todo lo que desea es XSD, LiquidXML tiene una versión gratuita que hace XSDs, y tiene una interfaz gráfica de usuario para que pueda ajustar el XSD si lo desea. De todos modos hoy en día escribo mis propios XSDs a mano, pero es todo gracias a esta aplicación.

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

 6
Author: Robert Gould,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-17 06:37:54

Si está trabajando en el mundo java - IntelliJ idea también tiene un amplio soporte xml, incluyendo xsd generation y samle xml de xsd generation, y con plugins puede obtener depuradores xslt. - especialmente bueno si planea usar herramientas como jaxb después.

 4
Author: Andreas Petersson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-17 23:31:16

Altova XMLSpy lo hace bien: encontrará una descripción general aquí

 3
Author: Garth Gilmour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 17:41:31

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 simplemente hizo lo que necesitaba.

 3
Author: v_e,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-09 22:06:06