2008-10-08 6 views

Répondre

8

Vous pouvez créer un attribut vide via attname = ""

Vous pouvez créer un élément vide par l'intermédiaire

<elementName></elementName> 

ou

<elementName/> 
+0

http://www.w3.org/TR/REC-xml/#NT-AttValue – Manav

11

Oui, il s'agit d'un fichier XML bien formé.

Un moyen facile de tester ceci (sous Windows) est de sauvegarder l'exemple dans un fichier test.xml et de l'ouvrir avec Internet Explorer. IE affichera un message d'erreur si le document n'est pas bien formé.

+24

Je ne suis pas sûr que je compter sur IE comme le test d'une norme définitif en. –

+2

Ne vous inquiétez pas: tester un xml bien formé est quelque chose de très bien compris et difficile à bousiller. –

+1

Comme noté @ hal10001, il y a plusieurs analyseurs qui échouent lorsqu'ils reçoivent un XML valide et je pense qu'il y en a plusieurs qui fonctionnent avec du XML invalide. –

4

Cela ne vaut rien que ce soit un attribut XML , pas un élément. Un élément vide serait:

</> 

qui n'est pas valide XML.

+0

Vous avez raison, j'ai modifié la question pour correspondre à ce que j'avais prévu. –

+2

Si nous sommes pédants, la spécification XML appelle des éléments tels que les éléments vides '

' et '
'. –

2

Il convient également de noter que certains analyseurs XML vont générer une erreur sur les nœuds de chaîne vides et les attributs au lieu de renvoyer une valeur nulle ou une chaîne vide. Donc, même si cela peut être valable, il vaudrait mieux le laisser complètement de côté.

+0

Cela ressemble à un analyseur cassé, car un attribut manquant est différent d'un attribut spécifiant une chaîne vide (en particulier lors de l'utilisation d'une DTD qui spécifie des valeurs d'attribut par défaut). –

+0

Je suis d'accord complètement :) –

+0

Quel analyseur lève une erreur sur un attribut vide? –

0

Oui - contenu de l'élément peut être vide, et comme vous l'avez utilisé dans votre question, il y a même la notation spéciale de l'étiquette Empty-Element:

<elementname /> 

Sauf Interop avec SGML est nécessaire, ce qui précède est équivalent à

<elementname></elementname> 

Les valeurs d'attribut peut également être vide, mais les attributs doivent toujours être suivi d'un « = » et une chaîne entre guillemets, même si la chaîne ne contient aucun caractère.


Le lieu définitif pour ces informations est la spécification XML: http://www.xml.com/axml/testaxml.htm

Voici ce que le XML annotés de référence a à dire sur les éléments vides:

Alors, est-ce: <img src='madonna.gif'></img> vraiment exactement la même chose que <img src='madonna.gif'/>? En ce qui concerne XML est concernés, ils sont. Cette décision était l'occasion de beaucoup de débat religieux, avec un certain sentiment qu'il y a un élément essentiel entre "point" et "conteneur" des éléments de type. Et comme le "pour l'interopérabilité" note ci-dessous , il est clair, si vous utilisez le logiciel SGML pré-1998 pour traiter XML, il ya une grande différence.

Note: la discussion sur les éléments vides était en raison du libellé original de la question posée.

3

c'est balise xml valide:

<mytag myattrib=""/> 

ce n'est pas:

<mytag myattrib/> 
Questions connexes