Structure d`un document xml Structure d un document
Transcription
Structure d`un document xml Structure d un document
XML Structure d’un Structure d un document xml document xml DTD Le schéma XSD Structure d’un Structure d un document XML document XML • Un document XML contient les éléments suivants: U d XML i l élé i – Le prologue • <?xml version="1.0" encoding="ISO‐8859‐1"?> 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 f fermante. t – Un élément peut contenir d’autres éléments et du texte. Document XML bien formé Document XML bien formé • • • • • TTout élément doit avoir une balise fermante t élé t d it i b li f t 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 d document xml t l < < > > & & & ' ' " " Remarques • En xmll les espaces sont préservés l é é • Dans un document xml le caractère LF représente un saut de ligne. • Règles de nommage des éléments: g g – 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 p pp bien formé et valide par rapport à une DTD (Document Type Definition) • Une déclaration DTD peut être interne ou Une déclaration DTD peut être interne ou externe à un document XML. • Déclaration interne: Déclaration interne Déclaration interne <?xml version="1.0"?> 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 Déclaration externe • D Dans le document xml, ajouter la déclaration l d t l j t l dé l ti suivante: – <!DOCTYPE elt_racine <!DOCTYPE elt racine SYSTEM SYSTEM "definition definition.dtd dtd">> – Exemple: <!DOCTYPE note SYSTEM " note.dtd"> • Créer le fichier note.dtd suivant: 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 d’un Blocs d un document xml document xml • • • • • Eléments Attributs Entités PCDATA: parsed character data. CDATA: les données de type CDATA ne seront CDATA: les données de type CDATA ne seront pas analysées par un analyseur. Déclaration d’un Déclaration d un élément é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 l é *? • | exemple <!ELEMENT nomelement (header|message)> • • • • Déclaration des attributs dans un DTD Déclaration des attributs dans un DTD • Pour chaque attribut <!ATTLIST element nom_attribut type yp valeur_default> – Exemple: <!ATTLIST payment type CDATA Exemple: <!ATTLIST payment type CDATA "carte"> carte > Types d’attributs Types d attributs • • • • • • • • • • • CDATA: caractères CDATA tè (en1|en2|..): liste de valeurs ID: id unique 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: notation t ti Xml: : une valeur xml prédéfinie Valeurs par défaut 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 Les entités • <!ENTITY matiere "Technologies xml."> • Utilisation <cours>&matiere;</cours> Utilisation <cours>&matiere;</cours> • Déclaration externe d’une entité – <!ENTITY nom_entité SYSTEM "URI/URL"> Les feuilles de style css Les feuilles de style css • Lier une feuille de style à un document xml – <?xml‐stylesheet y type="text/css" yp / href=" style.css"?> • Exemple: Exemple de DTD Exemple de DTD <!ELEMENT clients li t (client*)> ( li t*)> <!ELEMENT client (nom,prenom,commandes?)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT commandes (commande+)> <!ELEMENT commande (date,article+)> (date 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 Document clients.xml <?xml version= version="1 1.0 0" encoding= 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 /q </quantite> </article> </commande> </commandes> </client> </clients> Style css Style.css CATALOG { background‐color: #ffffff; CATALOG { b k d l #ffffff width: 100%; } CD { display: block; margin‐bottom: 30pt; margin‐left: 0; } TITLE { color: #FF0000; TITLE { color: #FF0000; font‐size: 20pt; } ARTIST { color: #0000FF; font‐size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY { display: block; color: #000000; color: #000000; margin‐left: 20pt; } styles • • • • • Pseudo sélecteurs before d él b f et after f DATE {display: block; font‐size: 32pt; font‐weight: bold; t t li text‐align: center} t } DATE:before (ou after) {content: "Date: "} Css est un langage de style limité est un langage de style limité – Des éléments peuvent être cachés par display:none – Un style défini pour un élément s Un style défini pour un élément s’applique applique aussi aux 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. un éléments en utilisant : before, after et content • display: block, none, list‐item, table