---
title: "Conversión de XML a XSD: Generación de un esquema a partir de múltiples instancias XML"
date: "2021-08-25"
categories: 
  - "development"
  - "tools"
  - "xml"
tags: 
  - "xml-editor"
  - "xml-schema"
  - "xmlspy"
  - "xsd"
description: Aprenda a generar un archivo XSD a partir de múltiples instancias XML utilizando XMLSpy, un potente editor de XML que simplifica la creación de esquemas para archivos relacionados.
---
Status: #blog

Tags:  #xml-editor #xml-schema #xmlspy #xsd

Categories: [development](/blog/es/category/development.md) | [xml](/blog/es/category/xml.md)
# Conversión de XML a XSD: Generación de un esquema a partir de múltiples instancias XML

Recientemente, estuve conversando con uno de nuestros ingenieros de soporte técnico sobre las preguntas más frecuentes que recibe de los clientes. Una de las que surge con mucha frecuencia es la generación de esquemas, específicamente: "¿Cómo puedo generar un XSD a partir de un XML?". La respuesta, por supuesto, es utilizar su editor de XML preferido. XMLSpy puede generar un XSD válido a partir de un DTD, una estructura de base de datos relacional, un esquema JSON y, por supuesto, una instancia XML.

Pero lo que muchos clientes se sorprenden al descubrir es que el editor de XML también creará un esquema XML basado en.. _grupo_ de archivos XML relacionados, y esto es un requisito común. Veamos cómo funciona.

![](/blog/images/PR112123_700x335.jpg)

<!--more-->

## Generar un esquema XSD

Supongamos que he heredado un proyecto de desarrollo web, y como punto de partida he recibido un conjunto de archivos XML, pero.. [XML Schema](https://www.w3.org/XML/Schema). Para generar un esquema XSD para esos archivos, primero necesito agregarlos a un proyecto de XMLSpy. Esto será útil más adelante, ya que el proyecto agrupa todos los archivos relacionados en un conjunto de carpetas fácil de gestionar, donde puedo buscar archivos específicos, asignar transformaciones XSLT, realizar operaciones por lotes como la validación a nivel de proyecto y la búsqueda dentro de los archivos, entre otras cosas.

Vale la pena dedicar un momento a hablar del propio proyecto XMLSpy. Las carpetas pueden corresponder a directorios reales en el sistema de archivos, o puedo definir extensiones de tipo de archivo para cada carpeta, de modo que los archivos comunes se mantengan juntos en un lugar conveniente. Las carpetas del proyecto son carpetas virtuales y no necesitan corresponder a ninguna organización jerárquica de los archivos en el servidor en sí.

También puedo asignar diferentes parámetros de transformación XSL a cada carpeta, y permitir que el mismo archivo físico se encuentre en más de una carpeta de proyecto. Esto es especialmente útil cuando necesito mantener los datos en un único archivo XML y utilizar diferentes hojas de estilo XSL para generar diferentes resultados. Y, por supuesto, la gestión de proyectos de XMLSpy se integra con la mayoría de los sistemas de control de versiones.

De acuerdo, volvamos a [la generación del XSD](https://www.altova.com/es/xmlspy-xml-editor/xsd-to-xml). El primer paso es seleccionar "Nuevo Proyecto" en el menú "Proyecto". XMLSpy crea un proyecto básico con carpetas de ejemplo para diferentes tipos de archivos. Es fácil añadir carpetas personalizadas, según sea necesario. Para añadir los archivos que he recibido a este nuevo proyecto, hago clic derecho en la carpeta "Archivos XML" y selecciono "Añadir archivos..."

![Crear un proyecto XML](https://lh3.ggpht.com/-CU_6VD_ekWM/UP6ivUhf0nI/AAAAAAAAATE/NjKHHB7Ms7Q/clip_image001_thumb.png?imgmax=800 "Creating an XML Project")

...y navegue para seleccionar los archivos XML que se utilizarán en el sitio web. Este es un buen momento para guardar el proyecto con un nombre descriptivo, y esto también guarda las nuevas asociaciones de archivos que se hayan añadido al proyecto.

![Proyecto XML](https://lh5.ggpht.com/-V3GvW60FxRw/UP6iwRG9DuI/AAAAAAAAATU/nm9geL3zWhA/clip_image002_thumb.png?imgmax=800 "XML Project")

Ahora, solo necesito hacer clic derecho en la carpeta "Archivos XML" y seleccionar "Generar DTD/Esquema...", y luego revisar o actualizar las opciones configurables.

![Funcionalidad de conversión de XSD a XML en XMLSpy](https://lh3.ggpht.com/-tqOErpnsdVo/UP6ixFWQwAI/AAAAAAAAATk/1TCQL6s_ubM/clip_image003_thumb.png?imgmax=800 "Generate XSD Dialog")

Esto generará un esquema XSD basado en todos los archivos XML incluidos en la carpeta. Después de hacer clic en "Aceptar", se me pedirá que guarde el esquema XML generado automáticamente, y este se abrirá en la [vista gráfica del esquema XML](https://www.altova.com/es/xml-schema-editor.html). A continuación, se muestran los elementos globales generados a partir de los archivos de instancia XML:

![Esquema XSD generado a partir de múltiples instancias XML](https://lh6.ggpht.com/-5xXyRqVd_jo/UP6ixwkADUI/AAAAAAAAAT0/UQ5bJfBpFaY/clip_image004_thumb.png?imgmax=800 "Schema Globals")

Hacer clic en el icono del árbol que aparece junto a cualquier elemento muestra el modelo de contenido detallado.

![Modelo de contenido XSD editable](https://lh4.ggpht.com/-V7dptViaW9w/UP6iypwrRqI/AAAAAAAAAUE/RI7IL9P1Ojg/clip_image005_thumb.png?imgmax=800 "XSD Content Model")

El paradigma de diseño gráfico del [editor de XSD](https://www.altova.com/es/xmlspy/xsd-editor.html) facilita la modificación y edición de este esquema según sea necesario.

Eso es todo: en unos pocos pasos, he generado un esquema válido a partir de un conjunto de archivos de instancia.

¿Qué funciones de XMLSpy facilitan su trabajo diario? ¿O existe alguna función que le gustaría que se añadiera para ahorrar tiempo? Nos encantaría saber su opinión. ¡Por favor, deje un comentario a continuación!
