xml
Blocs de construction
Recherche…
Éléments
Les éléments fournis avec des crochets sont le composant le plus important de XML.
Les éléments peuvent soit être vides, auquel cas ils sont constitués d'une balise vide (notez la barre oblique de fin):
<an-empty-element/>
Ou bien ils peuvent avoir du contenu, auquel cas ils ont une balise d'ouverture (pas de barre oblique) et une balise de fermeture (début d'une barre oblique):
<a-non-empty-element>Content</a-non-empty-element>
Les éléments peuvent être imbriqués (mais uniquement entre les balises d'ouverture et de fermeture):
<parent-element>
<child-element/>
<another-child-element>
Some more content.
</another-child-element>
</parent-element>
Les noms d'éléments sont appelés QNames (noms qualifiés). Tous les éléments ci-dessus ne sont pas dans un espace de noms, mais les noms d'éléments peuvent également être définis dans des espaces de noms en utilisant des préfixes comme ceux-ci:
<my-namespace:parent-element xmlns:my-namespace="http://www.example.com/">
<my-namespace:child-element/>
<my-namespace:another-child-element>
Some more content.
</my-namespace:another-child-element>
</my-namespace:parent-element>
Les espaces de noms et les noms d'éléments sont décrits plus en détail dans cette section de la documentation .
Les attributs
Les attributs sont des paires nom-valeur associées à un élément.
Ils sont représentés par des valeurs entre guillemets simples ou doubles à l'intérieur de la balise element d'ouverture ou par la balise element vide s'il s'agit d'un élément vide.
<document>
<anElement foo="bar" abc='xyz'><!-- some content --></anElement>
<anotherElement a="1"/>
</document>
Les attributs ne sont pas ordonnés (contrairement aux éléments). Les deux éléments suivants ont les mêmes ensembles d'attributs:
<foo alpha="1" beta="2"/>
<foo beta="2" alpha="1"/>
Les attributs ne peuvent pas être répétés dans le même élément (contrairement aux éléments). Le document suivant n'est pas bien formé: car l'attribut <foo a="x" a="y"/>
a
apparaît deux fois dans le même élément.
Le document suivant est bien formé. Les valeurs peuvent être identiques, c'est le nom de l'attribut qui ne peut pas être répété.
<foo a="x" b="x"/>
Les attributs ne peuvent pas être imbriqués (contrairement aux éléments).
Texte
Le texte est composé de tous les caractères en dehors de tout balisage (balises d'élément d'ouverture, balises d'élément de fermeture, etc.).
<?xml version="1.0"?>
<document>
This is some text and <b>this is some more text</b>.
</document>
La terminologie XML précise pour le texte est constituée de données de caractères . La spécification XML utilise en réalité le mot texte pour l'ensemble du document XML, ou une entité analysée, car elle définit XML au niveau syntaxique. Cependant , certains modèles de données tels que le XDM (XQuery et XPath Data Model), qui représentent des documents XML comme des arbres, se réfèrent à des données de caractères en tant que nœuds de texte, tel que le texte est souvent compris comme synonyme de données de caractère dans la pratique.
Les données de caractère ne peuvent pas contenir un caractère <
- ceci serait interprété comme le premier caractère d'une balise d'élément d'ouverture - il ne peut pas non plus contenir la séquence de caractères ]]>
. Les caractères appropriés doivent être échappés avec une référence d'entité à la place.
<?xml version="1.0"?>
<document>
It is fine to escape the < character, as well as ]]>.
</document>
Pour plus de commodité, on peut également échapper à un gros morceau de texte avec une section CDATA (mais la séquence ]]>
n'est toujours pas autorisée pour des raisons évidentes):
<?xml version="1.0"?>
<document>
<![CDATA[
In a CDATA section, it is fine to write < or even & and entity references
such as & are not resolved.
]]>
</document>
commentaires
Les commentaires en XML ressemblent à ceci:
<!-- This is a comment -->
Ils peuvent apparaître dans le contenu de l'élément ou au niveau supérieur:
<?xml version="1.0"?>
<!-- a comment at the top-level -->
<document>
<!-- a comment inside the document -->
</document>
Les commentaires ne peuvent pas apparaître dans les balises ou dans les attributs:
<element <!-- comment with -- inside --> />
ou
<element attr="<!-- comment with -- inside -->"/>
ne sont pas bien formés.
La séquence de caractères --
ne peut pas apparaître au milieu d'un commentaire. Ce n'est pas du XML bien formé:
<!-- comment with -- inside -->
Les commentaires en XML, contrairement à d'autres langages tels que C ++, font partie du modèle de données : ils sont analysés, transférés et visibles par l'application qui en consomme.
Instructions de traitement
Une instruction de traitement permet de transmettre directement certaines informations ou instructions à l'application via l'analyseur.
<?my-application some instructions ?>
Le jeton après le point d'interrogation initial (ici my-application
) s'appelle la cible et identifie l'application à laquelle l'instruction est destinée. Ce qui suit n'est plus spécifié et c'est à l'application de l'interpréter. Les références d'entité et de caractère ne sont pas reconnues.
Il peut apparaître au niveau supérieur ou dans le contenu de l'élément.