¿Es ilegal tener declaraciones de espacios no utilizados en un documento XML?

StackOverflow https://stackoverflow.com/questions/982745

  •  13-09-2019
  •  | 
  •  

Pregunta

Por ejemplo, es el siguiente documento XML considerado válido según la recomendación W3C XML 1.0? Observe que el espacio de nombres 'futuro' no se hace referencia en cualquier parte del documento.

A pesar de que esto no puede ser considerado un buen estilo, mi creencia es que el documento sigue siendo válido independientemente del espacio de nombres sin usar. Alguien puede confirmar o refutar esta hipótesis?

Gracias, Matt

<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1'  xmlns:future='http://bar.org/v1'>
    <child>1</child>
</root>
¿Fue útil?

Solución

El norma no parece indicar lo contrario. Sección 7, "la conformidad de los documentos" da una serie de requisitos con el fin de llamar a un documento "espacio de nombres bien formado" y "espacio de nombres válidos" pero nada dice que no se puede tener una declaración de espacio no utilizado.

En la sección 3, se da un ejemplo, que contiene un espacio de nombres no utilizado:

<x xmlns:edi='http://ecommerce.example.org/schema'>
    <!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
         for the "x" element and contents -->
</x>

Otros consejos

No, no es ilegal tener declaraciones de espacios no utilizados en un documento XML.

W3C en realidad tiene un servicio validador . Esto valida con dos advertencias, la codificación y la falta de un tipo de documento.

Mientras que la mayoría de las herramientas de limpieza eliminará los espacios de nombres utilizados no recuerdo nada en las especificaciones XML diciendo que es ilegal para mantenerlos. Y no sé de cualquier analizador XML que no aceptará dicho documento (y hay una gran cantidad de este tipo de documentos que flotan alrededor).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top