Conversión predecible
Los atributos usan prefijo @, los elementos repetidos se convierten en arrays y el texto de un elemento con atributos usa #text. El contenido mixto se rechaza para no perder el orden.
Límites seguros
Máximo 10 MB, 100.000 nodos XML y 128 niveles de anidamiento. Las declaraciones DTD y ENTITY se rechazan y no se resuelven recursos externos.
¿Necesitas la conversión inversa? Convierte JSON a XML.
Cuándo se rechaza la conversión
El XML con texto mezclado entre elementos se rechaza porque un objeto JSON no conserva el orden original del texto. También se rechazan entidades desconocidas, atributos duplicados y etiquetas mal cerradas. Se admite el signo mayor que dentro de atributos entrecomillados.
Nombres de elementos y metadatos
Se conservan como claves JSON los elementos llamados constructor, toString o __proto__, también cuando se repiten. Los comentarios y las instrucciones de procesamiento XML se rechazan: el formato de salida no puede representar esos metadatos sin pérdida.
Prefijos y espacios de nombres XML
Antes de convertir, se comprueba que cada prefijo esté declarado y que dos atributos no representen el mismo nombre expandido mediante alias distintos. Se rechazan las vinculaciones reservadas incorrectas de xml y xmlns. Una declaración de namespace válida se conserva como atributo @xmlns en el JSON; comprueba el esquema del sistema receptor.
XML indentado y contenido mixto no son lo mismo
En <root><a>uno</a><b><c/></b></root>, el texto pertenece a un elemento y los hijos anidados a otro: no hay contenido mixto en el mismo padre. El conversor acepta esa estructura y omite la indentación ordinaria entre elementos, porque el objeto JSON no representa esos espacios de presentación.
Cuándo xml:space impide convertir sin pérdida
Si aparece xml:space="preserve", incluso los espacios entre elementos hijos pueden ser datos significativos. En ese caso se rechaza la conversión si esos espacios se perderían; xml:space="default" puede restablecer el comportamiento normal en un descendiente. Para conservar la estructura XML usa formatear XML; para transformar objetos compatibles consulta JSON a XML.