Est-il illégal d'avoir des déclarations d'espace de noms inutilisés dans un document XML?

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

  •  13-09-2019
  •  | 
  •  

Question

Par exemple, est le document XML suivant considéré valide selon la recommandation XML 1.0 du W3C? Notez que l'espace de noms « futur » n'est pas référencé nulle part dans le document.

Bien que ce ne peut pas être considéré comme un bon style, ma conviction est que le document est toujours valide quel que soit l'espace de noms utilisé. Quelqu'un peut-il confirmer ou infirmer cette hypothèse?

Merci, Matt

<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1'  xmlns:future='http://bar.org/v1'>
    <child>1</child>
</root>
Était-ce utile?

La solution

Le standard ne semble pas indiquer le contraire. L'article 7, « La conformité des documents » donne quelques exigences afin d'appeler un document « espace de noms bien formé » et « espace de nom valide », mais rien ne dit que vous ne pouvez pas avoir une déclaration d'espace de noms utilisé.

Dans la section 3, un exemple est donné, qui contient un espace de noms utilisé:

<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>

Autres conseils

Non, ce n'est pas illégal d'avoir des déclarations d'espace de noms inutilisés dans un document XML.

W3C a fait un service validateur. Ceci valide avec deux avertissements, le codage et le manque d'un type de document.

Alors que la plupart des outils de nettoyage va supprimer les espaces de noms inutilisés Je ne me souviens pas de quoi que ce soit sur les spécifications XML disant qu'il est illégal de les garder. Et je ne connais pas d'analyseur XML qui n'acceptera pas un tel document (et il y a beaucoup de ces documents flottant autour).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top