pulsa ⌘K para cambiar de herramienta
FORMAT & CONVERT

Generador XML → XSD

Genera definiciones de esquema XSD desde XML.

local
xml-xsd

A best-effort schema inferred from one sample. Types default to xs:string.

§01 ACERCA DE ESTA HERRAMIENTA

Descripción general

Pega un documento XML y obtén un XSD (XML Schema Definition) como punto de partida. El generador recorre el árbol de elementos, crea un xs:complexType por nombre de elemento, lista los elementos hijos en una xs:sequence, declara los atributos como xs:string y marca con maxOccurs="unbounded" los hijos que se repiten bajo un mismo padre. Útil cuando heredas un canal XML sin esquema y necesitas que la validación o la generación de código empiecen por algún sitio.

Cómo se usa

  1. Pega tu documento en el área XML.
  2. Lee el esquema generado en la salida XSD (inferred): se regenera con cada pulsación.
  3. Si la entrada está mal formada, se muestra un error Invalid XML en su lugar.

Ejemplos

  • <books><book id="1"><title>A</title></book></books> produce un esquema con los tipos complejos booksType y bookType, un elemento title tipado como xs:string y un atributo id declarado como xs:string.

Notas

Se asume que los elementos que comparten nombre de etiqueta comparten un mismo tipo, y los espacios de nombres no se analizan. Toma la salida como un andamiaje: ajusta los tipos de datos, las restricciones de aparición y las enumeraciones frente a tu contrato real.

FAQ
¿Se envía mi XML a un servidor?
No. El documento se analiza con el DOMParser integrado en tu navegador y el esquema se genera localmente. Nada se sube, así que puedes pegar cargas útiles propietarias sin riesgo.
¿Cuán preciso es el esquema inferido?
Es una estructura hecha lo mejor posible a partir de una sola muestra: se capturan los nombres de elementos y atributos, los elementos hijos repetidos reciben maxOccurs=unbounded, pero todos los tipos de hoja y de atributo quedan por defecto en xs:string. Ajusta los tipos y las restricciones a mano.
¿El XSD generado puede detectar los elementos opcionales?
No. Con una sola muestra no hay forma de distinguir lo obligatorio de lo opcional, así que todos los elementos observados aparecen en la secuencia. Añade tú mismo minOccurs=0 donde los elementos puedan faltar.