XML Structure d un dun document xml DTD Le schéma XSD
Structure dun d un document XML Un document XML contient les éléments suivants: Le prologue <?xml version="1.0" encoding="iso 8859 1"?> Un arbre contenant les éléments du document qui forment les nœuds de l arbre Des commentaires <! commentaire > Les éléments: un élément xml est tout ce qui est contenu entre une balise ouvrante et une balise fermante. Un élément peut contenir d autres éléments et du texte.
Document XML bien formé Tout télément doit avoir une balise bli fermante Les balises sont sensibles à la casse. Les éléments XML doivent être correctement imbriquées Un document xml doit avoir un élément racine Les valeurs des attributs xml doivent être entre guillemets " " ou Les entités: 5 entités prédéfinies en xml: Uniquement les caractères < et & sont strictement interdits dans un document xml < < > > & & ' ' " "
Remarques En xml les espaces sont préservés é Dans un document xml le caractère LF représente un saut de ligne. Règles de nommage des éléments: Le nom d un élément peut contenir des lettres, des chiffres et d autres caractères. Le nom ne doit pas commencer par un chiffre ou un caractère de ponctuation Un nom ne doit pas commencer par xml. Un nom ne doit pas contenir d espace.
DTD Un document xml valide est un document bien formé et valide par rapport à une DTD (Document Type Definition) Une déclaration DTD peut être interne ou externe à un document XML. Déclaration interne:
Déclaration interne <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (A,DE,Titre,Corps)> <!ELEMENT A (#PCDATA)> <!ELEMENT DE (#PCDATA)> <!ELEMENT Titre (#PCDATA)> <!ELEMENT Corps(#PCDATA)> ]> <note> <A>Timah</A> <DE>Hatim</DE> <Titre>Rappel</Titre> <Corps>Votre commande a été expédiée</corps> </note>
Déclaration externe Dans le document xml, ajouter la déclaration suivante: <!DOCTYPEelt elt_racine SYSTEM "definition.dtd dtd"> Exemple: <!DOCTYPE note SYSTEM " note.dtd"> Créer le fichier note.dtd suivant: <!ELEMENT note (A, DE, Titre,Corps)> <!ELEMENT A (#PCDATA)> <!ELEMENT DE (#PCDATA)> <!ELEMENT Titre (#PCDATA)> <!ELEMENT Corps (#PCDATA)>
Blocs dun d un document xml Eléments Attributs Entités PCDATA: parsed character data. CDATA: les données de type CDATA ne seront pas analysées par un analyseur.
Déclaration dun d un élément <!ELEMENT element type> Exemple: <!ELEMENT note #PCDATA> Valeurs possibles pour catégorie EMPTY: élément vide (#PCDATA) ANY, exmple: <!ELEMENT note ANY> <!ELEMENT note (A,DE,Titre,Corps)>: les éléments fils doivent apparaître dans le même ordre. Multiplicité: l +, *? *,? exemple <!ELEMENT nomelement (header message)>
Déclaration des attributs dans un DTD Pour chaque attribut <!ATTLIST element nom_ attribut type valeur_default> Exemple: <!ATTLIST payment type CDATA "carte">
Types d attributs CDATA: caractères (en1 en2..): liste de valeurs ID: id unique IDREF: id d un autre élément IDREFS: une liste d ids d autres éléments NMTOKEN: un nom xml valide NMTOKENS: un nom xml valide ENTITY: une entité ENTITIES: une liste d entités NOTATION: notation tti Xml: : une valeur xml prédéfinie
Valeurs par défaut Value: une valeur #REQUIRED #IMPLIED: l attribut n est pas obligatoire #FIXED val: la valeur val de l attribut est fixe Exemple: <!ATTLIST paiement type (chèque numéraire carte) "carte">
Les entités <!ENTITY matiere "Technologies xml."> Utilisation <cours>&matiere;</cours> Déclaration externe d une entité <!ENTITY nom_entité SYSTEM "URI/URL">
Les feuilles de style css Lier une feuille de style à un document xml <?xml stylesheet type="text/css" href=" style.css"?> Exemple:
Exemple de DTD <!ELEMENT clients (client*)> <!ELEMENT client (nom,prenom,commandes?)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT commandes (commande+)> <!ELEMENT commande (date,article+)> article+)> <!ELEMENT date (#PCDATA)> <!ELEMENT article (ref,designation,prix,quantite)> <!ELEMENT ref (#PCDATA)> <!ELEMENT designation (#PCDATA)> <!ELEMENT prix (#PCDATA)> <!ELEMENT quantite (#PCDATA)> <!ATTLIST commande ref CDATA #REQUIRED >
Document clients.xml <?xml version="1 1.0" encoding="utf utf 8 8"?> <!DOCTYPE clients SYSTEM "clients.dtd" > <clients> <client> <nom> Hatim </nom> <prenom> TimaH </prenom> <commandes> <commande ref="1"> <date> 10/10/10 </date> <article> <ref> 10 </ref> <designation> Café </designation> <prix> 150 </prix> <quantite> 15 </quantite> </article> <article> <ref> 1010 </ref> <designation> Thé </designation> <prix> 100 </prix> <quantite> 10 </quantite> </article> </commande> </commandes> </client> </clients>
Style.css CATALOG { background color: #ffffff; width: 100%; } CD { display: block; margin bottom: 30pt; margin left: 0; } TITLE { color: #FF0000; font size: 20pt; } ARTIST { color: #0000FF; font size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY { display: block; color: #000000; margin left: 20pt; }
styles Pseudo sélecteurs bf before et after DATE {display: block; font size: 32pt; font weight: bold; text align: t center} DATE:before (ou after) {content: "Date: "} Cssestun langagede style limité Des éléments peuvent être cachés par display:none Un style défini pour un élément s applique aussi aux nœuds fils de cet élément Des éléments de texte peuvent être ajoutés avant ou après un éléments en utilisant : before, after et content. display: block, none, list item, table