Saltar al contenido principal
Convertidor de imágenes Convertidor de vídeo Convertidor de audio Convertidor de documentos
Herramientas Guías Formatos Precios API
Iniciar sesión
🇬🇧 English 🇧🇷 Português 🇩🇪 Deutsch
Guía

Formato XML: Guía Técnica Completa

PC Por Pablo Cirre

Preguntas frecuentes

Usa XML cuando: (1) Necesitas contenido mixto (texto mezclado con elementos, como documentos XHTML o DocBook). (2) Necesitas herramientas de transformación estandardizadas (XSLT) o consulta (XPath). (3) Trabajas con formatos centrados en documentos (Office Open XML, ODF, SVG). (4) Necesitas validación DTD o XSD como parte de tu flujo de trabajo. (5) Te integras con sistemas empresariales, servicios SOAP o sistemas heredados que esperan XML. Para nuevas APIs web y archivos de configuración, JSON o YAML suelen ser más simples y más adecuados.

<strong>Bien formado</strong> = cumple las reglas sintácticas básicas (un único elemento raíz, etiquetas correctamente cerradas, atributos entre comillas). <strong>Válido</strong> = además es bien formado <em>y</em> cumple un esquema (DTD, XSD o RELAX NG) que define qué elementos y atributos puede contener. Todo XML válido es bien formado, pero no al revés.

XML bien formado sigue reglas sintácticas: un elemento raíz, todas las etiquetas cerradas, atributos entre comillas, sin < ni & sin escape en el contenido. Un analizador puede procesar XML bien formado sin ningún esquema. El XML válido está bien formado Y se ajusta a un esquema (DTD, XSD o RELAX NG) — todos los elementos requeridos están presentes, los tipos de datos son correctos, no aparecen elementos no definidos. La mayoría de las aplicaciones solo requieren correcta formación para el intercambio de datos; la validación se aplica al recibir XML de fuentes externas.

XSD (W3C XML Schema) es el estándar industrial — lo usa SOAP, OASIS y casi todo el ecosistema empresarial. RELAX NG es más expresivo y legible (sintaxis compacta), preferido en publishing y DocBook. Para interoperar con web services y stacks .NET/Java elige XSD; para definir esquemas internos donde la legibilidad importa elige RELAX NG.

DTD (Document Type Definition) está incorporado en XML, es simple de escribir, pero limitado: sin tipos de datos (todo es texto), sin soporte de espacios de nombre, usa una sintaxis no XML. XSD (W3C XML Schema) está escrito en XML, soporta tipos de datos ricos (integer, decimal, date, boolean, anyURI, patrones), soporte completo de espacios de nombre, herencia y derivación de tipos complejos. Para validación simple, DTD es adecuado. Para aplicaciones empresariales que requieren datos tipados, usa XSD.

JSON ha sustituido a XML en APIs web por su brevedad. Pero XML sigue siendo la única opción razonable para: documentos con marcado mixto (XHTML, DocBook, TEI), formatos donde la validación estricta es legalmente requerida (factura electrónica, ePub), y formatos office (DOCX, XLSX, ODT son ZIP+XML). XML no muere — se especializa.

La conversión XML-a-JSON no es trivial porque XML y JSON tienen estructuras diferentes: XML tiene atributos, nodos de texto y contenido mixto que JSON no representa de forma nativa. Python: `pip install xmltodict` luego `json.dumps(xmltodict.parse(cadena_xml))`. Node.js: bibliotecas `xml2js` o `fast-xml-parser`. Línea de comandos: herramienta `xq` (`cat entrada.xml | xq .`). Los atributos se convierten en claves con prefijo "@", el contenido de texto se convierte en claves "#text".

<code>lxml</code> envuelve <code>libxml2</code> y <code>libxslt</code>, escritas en C y muy optimizadas. <code>ElementTree</code> está implementado en Python puro (con un acelerador C parcial). Para parsear documentos &gt;1 MB, <code>lxml</code> es 5–10× más rápido y ofrece XPath 1.0, XSLT 1.0 y validación XSD nativos — funcionalidades que <code>ElementTree</code> no tiene.