¿Qué es el formato de archivo XML?
Los archivos .xml almacenan datos en el formato Extensible Markup Language, un estándar de texto plano desarrollado por el W3C. Los archivos XML pueden representar cualquier estructura de datos en texto plano, lo que los hace adecuados para almacenar, compartir y transportar datos entre aplicaciones a través de Internet.
XML utiliza estructuras de marcado -etiquetas y atributos anidados- que definen las reglas que debe seguir un proceso de codificación para producir documentos que sean legibles tanto por máquinas como por humanos. Fue diseñado como una implementación más accesible de SGML (Standard Generalized Markup Language), simplificada para su uso en la web. Los archivos suelen comenzar con la declaración <?xml version="1.0" encoding="UTF-8"?>, y el tipo MIME es application/xml.
Los archivos XML utilizan codificación Unicode (UTF-8 por defecto) y pueden abrirse y editarse con cualquier editor de texto estándar. Debido a que el formato es autodescriptivo -cada elemento tiene un nombre y está anidado dentro de una jerarquía clara-, los datos pueden inspeccionarse sin software dedicado, aunque procesarlos o consultarlos mediante programación requiere un analizador (parser) o un lenguaje de consulta como XPath.
XML es en muchos aspectos similar a .HTML, ya que ambos formatos utilizan un lenguaje de marcado para representar contenido estructurado. El HTML se centra en la presentación e interacción de las páginas web, mientras que el XML describe el contenido en relación con los propios datos. Ambos formatos se utilizan conjuntamente en muchas aplicaciones web. XML también sirve como base para estándares relacionados como los esquemas de validación .XSD, las hojas de estilo de transformación .XSL y los canales de sindicación .RSS.
Seguridad y protección
RIESGO: MEDIUMUn archivo XML es texto plano y no contiene código ejecutable, por lo que leerlo es seguro. Los riesgos reales están en el ANALIZADOR (parser), no en el archivo: los ataques de Entidad Externa XML (XXE) abusan de las declaraciones <!DOCTYPE>/<!ENTITY> para leer archivos locales o activar solicitudes de red, y la expansión de entidades «billion laughs» puede agotar la memoria (denegación de servicio). Esto solo importa cuando el software analiza XML no confiable con entidades externas y procesamiento DTD habilitado; los analizadores modernos los desactivan por defecto. Para un usuario final que solo abre un .xml para leerlo, no hay peligro; la precaución es para los desarrolladores que procesan XML de terceros. También tenga cuidado con archivos que parecen «datos.xml» pero son en realidad otra cosa renombrada.
Detalles del formato
en pocas palabrasProgramas que abren archivos XML
Detalles técnicos
especificación profunda| Codificación de archivo | Solo Unicode; UTF-8 es el valor predeterminado cuando no hay declaración; UTF-16 y UTF-32 son compatibles y deben declararse en el prólogo XML |
| Tipo MIME | `application/xml` (principal, según RFC 7303); `text/xml` aceptado por compatibilidad heredada; los dialectos específicos pueden registrar su propio tipo (ej. `application/rss+xml`) |
| Firma de archivo | Sin número mágico binario fijo; los archivos suelen comenzar con la declaración XML opcional `<?xml` (hex `3C 3F 78 6D 6C`); puede ir precedido de un BOM UTF-8 (`EF BB BF`) o un BOM UTF-16 (`FF FE` / `FE FF`) |
| Estructura del documento | Jerarquía estricta: exactamente un elemento raíz; anidamiento ilimitado de elementos hijos; las etiquetas de apertura pueden llevar atributos con nombre y entrecomillados; todo el árbol debe estar bien formado |
| Reglas de formación | Todas las etiquetas deben cerrarse o cerrarse a sí mismas; los elementos no deben cruzarse en el anidamiento; los valores de los atributos deben estar entrecomillados; cinco entidades predefinidas (&, <, >, ", ') manejan caracteres reservados |
| Mecanismos de validación | DTD (Document Type Definition - archivo `.dtd` interno o externo, estándar antiguo) y XSD (XML Schema Definition - un archivo `.xsd` escrito en XML, con un sistema de tipos más rico); Schematron ofrece validación basada en reglas |
| Soporte de espacios de nombres | Las declaraciones `xmlns` y `xmlns:prefix` vinculan nombres de elementos y atributos a un URI, evitando colisiones al combinar vocabularios de múltiples fuentes |
| Secciones CDATA | Los bloques `<![CDATA[...]]>` permiten que el texto sin formato que contiene <, >, y & aparezca sin escape de entidades; útil para incrustar fragmentos HTML o código de script |
| Instrucciones de procesamiento | La sintaxis `<?target instruction?>` incrusta directivas específicas de la aplicación (ej. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) fuera del modelo de datos XML |
| Lenguajes de consulta | XPath 1.0/2.0/3.1 direcciona nodos individuales dentro de un documento; XQuery proporciona consultas de estilo SQL sobre conjuntos de datos XML; ambos están estandarizados por el W3C |
| Transformación XSLT | Los archivos `.xml` pueden transformarse a HTML, texto plano u otros vocabularios XML en tiempo de ejecución mediante un procesador XSLT que fusiona el documento fuente con una hoja de estilo `.xsl` o `.xslt` |
| Sintaxis de comentarios | Los comentarios `<!-- texto -->` pueden aparecer en cualquier lugar fuera de una etiqueta; los guiones dobles están prohibidos dentro del cuerpo del comentario; los comentarios se excluyen del modelo de datos XML |
| Normalización de saltos de línea | Los analizadores conformes normalizan las secuencias \r\n y \r solas a \n antes del procesamiento, asegurando un comportamiento consistente de los finales de línea entre plataformas |
| Declaraciones de entidades | Las entidades con nombre (&nombre;) y las referencias de caracteres numéricos (&#nnnn; decimal o &#xHHHH; hex) incrustan cualquier punto de código Unicode; las entidades personalizadas pueden declararse en un DTD |
| Estructura del prólogo | Un documento XML consta de una declaración XML opcional, una declaración DOCTYPE opcional, instrucciones de procesamiento y comentarios opcionales, seguidos de exactamente un elemento raíz |
| Ecosistema de dialectos | XML es la sintaxis base para XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML y formatos de configuración utilizados por Android, Maven, Spring y Java EE |
| Lanzado | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.w3.org |
Conversiones de XML
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos XML.