Exemple 5. Document exemple
<?xml version="1.0" encoding="UTF-8"?> <!-- un premier marin --> <galilee:marin id="12" xmlns:galilee="http://www.galilee.org/cours-xml"> <galilee:nom>Surcouf</galilee:nom> <galilee:prenom>Robert</galilee:prenom> <galilee:remarque lang="FR">Capitaine corsaire</galilee:remarque> </galilee:marin>
<?xml version… ?>
<galilee:marin> : est le document ;
<galilee:nom>Surcouf</galilee:nom> : est un élément ;
id="12" : est un attribut ;
<!-- un premier marin --> est un commentaire.
marin est parent de
nom et
prenom.
marin a deux enfants :
nom et
prenom, le nœud
nom n’a pas d’enfant.
nom et
prenom sont frères.
web.xml ayant une liste de servlets déclarées dans un ordre différent ne sont pas équivalents. D’ailleurs Tomcat ne va pas charger ces servlets dans le même ordre, ce qui peut conduire à des comportements différents de l’application web.
Robert est un nœud texte, atomique ;
"12" est un nœud texte également, atomique.
PCDATA est un acronyme qui signifie
Parsed Character DATA
. Un document XML peut être représenté dans un fichier texte simplement. Un tel texte, dans le langage XML est composé de
PCDATA, c'est-à-dire de chaînes de caractères qu'un analyseur XML va analyser afin de les traduire en nœds, et autres éléments. Dans un bloc de
PCDATA, certains caractères ont une signification particulière : notamment < et >.
La question se pose alors : comment peut-on utiliser le caractère < pour ce qu'il est, sans que l'analyseur XML ne l'interprête comme un début de balise ? XML nous donne en fait deux solutions, toutes les deux parfaitement valides et utilisables.
Lorsque l'on veut utiliser des caractères spéciaux dans des textes XML, qui ne doivent pas être pris en compte par l'analyseur XML, on utilise des
entités
HTML. Une entité HTML est un caractère spécial, écrit sous forme de code, placé entre les caractères
& et
;. Par exemple, l'entité pour le signe
< est
<. On peut utiliser le code numérique du caractère quand il n'a pas de nom (ici
lt signifie
lesser than
, et désigne le caractère
plus petit que
), précédé du caractère
#. Pour notre exemple,
< est équivalent à
<.
Cette approche est possible lorsque l'on a quelques caractères à prendre en compte. Elle n'est plus utilisable si le volume de caractères spéciaux devient trop important.
C'est là que la notion de
CDATA apparaît. Une portion
CDATA dans un document XML est une portion entière de ce document qui n'est pas prise en compte par l'analyseur. On peut ainsi avoir plusieurs pages de
CDATA, comportant tous les caractères spéciaux que l'on veut, sans perturber l'analyseur XML. Nous avons déjà vu que la valeur des attributs étaient de type
CDATA dans les DTD.
Une portion de texte
CDATA apparaît entre les balises
<![CDATA[ et
]]>
Exemple 6. Exemple de
CDATA
<?xml version="1.0" encoding="UTF-8"?> <!-- un premier marin --> <galilee:marin id="12" xmlns:galilee="http://www.galilee.org/cours-xml"> <galilee:nom>Surcouf</galilee:nom> <galilee:prenom>Robert</galilee:prenom> <galilee:remarque lang="FR">Capitaine corsaire</galilee:remarque> <galilee:description><![CDATA[ Ici une portion de texte non <analysée> ! ]]></galilee:remarque> </galilee:marin>
Node
NodeList
Element
Attr
CharacterData
Comment
CDATASection
Text
Entity
EntityReference
ProcessingInstruction
Document
DocumentFragment
DocumentType