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