Différence entre un élément simple vide et un élément complexe vide - XML
Y a-t-il une différence entre un élément simple vide et un élément complexe vide dans un fichier xml? Comment puis-je les distinguer?
Sur w3schools, j'ai trouvé:
- élément simple vide
<element></element>ou<element />; en plus il dit que "les éléments vides peuvent avoir des attributs.". - élément complexe vide
<product pid="1345"/>
Réponses
Être simple ou complexe est une propriété d'un type et non (directement) d'un élément. Nous pouvons dire qu'un élément est conforme à un type (spécifiquement, un type défini dans un schéma XSD), et nous pouvons dire que le type est simple ou complexe, mais les catégories de types simples et complexes se chevauchent dans les types d'éléments qui elles permettent. Plus précisément, les types complexes et les types simples peuvent autoriser des éléments vides tels que <e/>, et des éléments avec un contenu textuel tel que <e>foo</e>. Si nous voyons un élément qui a des attributs ou des éléments enfants, alors nous savons qu'il ne peut se conformer à aucun type simple, mais s'il n'en a ni l'un ni l'autre, alors nous ne le savons pas sans regarder le schéma.
La réponse à votre question "comment puis-je les distinguer" est que vous devez regarder dans le schéma; vous ne pouvez pas les distinguer uniquement de l'instance seule.
Un élément étant simple implique qu'il n'a aucun élément enfant ni attribut. Si un élément a des éléments enfants ou des attributs, il est considéré comme complexe .
Séparément, dire qu'un élément est vide, c'est dire qu'il n'a pas de contenu - non seulement il n'a pas d'élément enfant, mais il n'a pas non plus de nœuds de texte enfant.
Par conséquent, les éléments simples et complexes peuvent être vides ou non vides.
Remarque: si une balise de début se ferme automatiquement, <e/>vs <e></e>, que son élément soit simple ou complexe, est insignifiant et ne peut généralement pas être détecté ou défini au niveau XML.
Exemples
<e></e>est simple et vide.<e>abc</e>est simple et non vide.<e a="1"></e>est complexe et vide.<e a="1">abc</e>est complexe et non vide.
Voir également
- Définissez un élément XML qui doit être vide et n'a pas d'attribut
Sommaire
En général, pensez à un type complexe comme ayant une sous-structure XML et à un type simple comme dépourvu de sous-structure XML. Pensez à vide comme n'impliquant aucun contenu.