39
INFO0406 Luiz Angelo Steffenel Luiz Angelo Steffenel (URCA) INFO0406 1 / 39

INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

INFO0406

Luiz Angelo Steffenel

Luiz Angelo Steffenel (URCA) INFO0406 1 / 39

Page 2: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Programme

ObjectifEtude de technologies et de moyens autour de la programmation WEB

Programme1 XML & PHP2 Transformation XML (XSLT)3 AJAX4 Communication et protocoles5 Clients et Serveurs en Java

Luiz Angelo Steffenel (URCA) INFO0406 2 / 39

Page 3: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Organisation

Volume horaireCM 10 heuresTD 10 heuresTP 10 heures

Equipe pédagogiqueLuiz-Angelo Steffenel (CM, TD, TP)Arnaud Renard (CM, TD, TP)

Luiz Angelo Steffenel (URCA) INFO0406 3 / 39

Page 4: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

MCC

Session 1ITP 50 %

EET (1 heure) 50 %

Session 2ITP 50 %

EET (1 heure) 50 %

Luiz Angelo Steffenel (URCA) INFO0406 4 / 39

Page 5: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Introduction à XMLINFO0406

Luiz Angelo Steffenel

Luiz Angelo Steffenel (URCA) Introduction à XML 5 / 39

Page 6: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Plan

1 Généralités

2 Structure des documents XML

3 Définition et validation d’un XML

Luiz Angelo Steffenel (URCA) Introduction à XML 6 / 39

Page 7: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Plan

1 Généralités

2 Structure des documents XML

3 Définition et validation d’un XML

Luiz Angelo Steffenel (URCA) Introduction à XML 7 / 39

Page 8: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Origines du XML - SGML

Standard Generalized Markup LanguageNorme ISO 8879 en 1986, révisée en 1988 et 1994

Métalangage de balisage de documentsLisible par l’être humain et traitable par une machinePermettant de définir des langages de balisage

<titre>Le corbeau et le renard</titre>

Objectifs : Définir un modèle de structure logique pour coderl’information

Coder l’information selon ce modèleAssurer la pérennité des informationsAssurer l’indépendance des informations vis-à-vis des matérielset des logiciels

Luiz Angelo Steffenel (URCA) Introduction à XML 8 / 39

Page 9: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Origines du XML - SGML

Composants du document SGMLDTD (Définition de Type de Document)

Précise la structure du documentInstance du document

Texte du document + élément définis dans la DTDInstance conforme à 1 seule DTD

Synthèse du documentOptions, jeu de caractères, fonctions similaires.

LimitationsInadapté pour une gestion hyperdocumentaireTrès complexe et lourd d’options inutiles

Luiz Angelo Steffenel (URCA) Introduction à XML 9 / 39

Page 10: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Origines du XML - HTML

HyperText Markup LanguageModèle de représentation d’hyperdocuments

Utilisé par les serveurs et les clients WEBDéfini selon le standard SGML

Structure simple avec un nombre réduit de types d’élémentsSGML

Noeud : <HTML> contenu du noeud </HTML>entête : <HEAD> contenu entête </HEAD>titre : <TITLE> titre </TITLE>paragraphe : <P> texte du paragraphe </P>ancre : <A URL> texte-ancre </A>

LimitationsOrienté vers la présentation hypertextuelleApplication SGML figée :

Impossibilité de définir de nouvelles balises

Luiz Angelo Steffenel (URCA) Introduction à XML 10 / 39

Page 11: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Introduction

XML ?eXtended Markup Languagestandard définit par le W3C

http://www.w3c.org

permet une représentation structurée des informationsindépendant des plate-formesindépendant des langagesindépendant des logiciels qui l’exploite

Luiz Angelo Steffenel (URCA) Introduction à XML 11 / 39

Page 12: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Ce qu’est XML

Définitionsun langage de structuration de donnéesbasé sur une structure stricte

représentation baliséecouple balise ouvrante / fermante

extensibledéfinition de nouveaux documentsdéfinition de nouvelles "balises"

Luiz Angelo Steffenel (URCA) Introduction à XML 12 / 39

Page 13: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Ce que n’est pas XML

XML n’est pasun langage de visualisationun langage d’exécutionlié à une technologie ou un langage de programmation

Luiz Angelo Steffenel (URCA) Introduction à XML 13 / 39

Page 14: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

XML en action

Utilisation de XMLorganisation "locale" de données

sauvegarde dans un fichier de type textemise en place de données structuréesalternative à de "petites" bases de données

transmission de donnéeséchanges normalisésindépendant de l’exploitation des données

fichier de configurationtraitement des donnéestransformation automatique

Luiz Angelo Steffenel (URCA) Introduction à XML 14 / 39

Page 15: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Langages derivés et applications

LangagesPrésenter/transformer : CSS, XSL, XSLTLocaliser des fragments de documents : XpathDécrire des liens : Xlink, Xpointer (HyTime, HTML)Décrire un schéma : SchémasEt aussi : SAX, DOM, RDF, SOAP, ...

Applications

Échanges de donnéesBureautique

Le format OpenOffice.org est un zip qui contient des fichiers XML

Sites WebBases de donnéesE-commerce, ...

Luiz Angelo Steffenel (URCA) Introduction à XML 15 / 39

Page 16: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Structure, contenu et présentation

Trois aspects dans les documents :Le contenuLa structure logiqueLa présentation

XML permet de représenter les contenus textuels et la structurelogique

Les autres contenus sont des ressources externes (photos, vidéo,sons. . . )La présentation est décrite par des moyens complémentaires(CSS, XSL)La présentation peut changer, indépendamment des contenus etde la structure

Luiz Angelo Steffenel (URCA) Introduction à XML 16 / 39

Page 17: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Plan

1 Généralités

2 Structure des documents XML

3 Définition et validation d’un XML

Luiz Angelo Steffenel (URCA) Introduction à XML 17 / 39

Page 18: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Un exemple

Un carnet d’adresse

<?xml version=" 1.0 " encoding="UTF−8" standalone=" yes " ?><carnet>

<personne><nom> Renard < /nom><prenom> Arnaud < / prenom><adresse> dans son bureau < / adresse>

< / personne><personne>

<nom> S t e f f e n e l < /nom><prenom> Luiz−Angelo < / prenom><adresse> chez l u i < / adresse>

< / personne>< / carnet>

Luiz Angelo Steffenel (URCA) Introduction à XML 18 / 39

Page 19: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

L’en tête

Rôlesdéfinir et préciser le type du document (XML)définir la version utiliséedéfinir l’encodage (codage des caractères)définir les relations avec d’autres documents

Exemple

<?xml version=" 1.0 " encoding="UTF−8" standalone=" yes " ?>

Luiz Angelo Steffenel (URCA) Introduction à XML 19 / 39

Page 20: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Les éléments XML

Rôlesarchitecture des donnéeshiérarchie des informationsdéfinition par imbrication de couples de balises

<balise> contenu </balise>

<carnet><personne>

<nom> Renard < /nom><prenom> Arnaud < / prenom><adresse> dans son bureau < / adresse>

< / personne>< / carnet>

Luiz Angelo Steffenel (URCA) Introduction à XML 20 / 39

Page 21: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Représentation sous forme d’arbre

Arbre du document carnet

carnet

personne personne

nom prénom adresse

Renard

Arnaud

dans son bureau

nom prénom adresse

Steffenel

Luiz-Angelo

chez lui

Luiz Angelo Steffenel (URCA) Introduction à XML 21 / 39

Page 22: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Règles syntaxiques sur les éléments :<nom_élément> contenu </nom_élément>

Balises ouvrante et fermante doivent correspondre :<titre>...</titre>

Imbrication correcte (pas de chevauchement) :<livre>...<titre>...</titre>...</livre>

Casse importante :<titre> différent de <TITRE>

Nom d’élémentDoit commencer par une lettre ou un soulignéNe peut comporter que des chiffres, des lettres, des traits d’union,des points, des double points ou des soulignés

Elément sans contenu = élément videpeut s’écrire avec une balise auto-fermante<achat date="08/06/2001" />

Luiz Angelo Steffenel (URCA) Introduction à XML 22 / 39

Page 23: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Les attributs

Rôlesqualification des élémentsdéfinit sous la forme : nom="valeur"définit dans la balise "ouvrante"

<carnet><personne>

<nom> Renard < /nom><prenom> Arnaud < / prenom><adresse type=" t r a v a i l "> dans son bureau < / adresse>

< / personne><personne>

<nom> S t e f f e n e l < /nom><prenom> Luiz−Angelo < / prenom><adresse type=" perso "> chez l u i < / adresse>

< / personne>< / carnet>

Luiz Angelo Steffenel (URCA) Introduction à XML 23 / 39

Page 24: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Représentation sous forme d’arbre

Arbre du document carnet

carnet

personne personne

nom prénom adresse

Renard

Arnaud

dans son bureau

nom prénom adresse

Steffenel

Luiz-Angelo

chez lui

travail perso

Luiz Angelo Steffenel (URCA) Introduction à XML 24 / 39

Page 25: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Les attributs

Un attributSert à préciser l’élément et son contenu (langue,...)Possède un nom et une valeur obligatoirement spécifiéeEst porté par la balise ouvrante de l’élément

Dans un élément 0 à n attributs non ordonnésChaque attribut ne peut apparaître qu’une fois

Certains attributs sont prédéfinisxml :lang, xml :space, xmlns

Luiz Angelo Steffenel (URCA) Introduction à XML 25 / 39

Page 26: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Entités

Substituts pour des séquences d’informationDéfinies dans l’en-tête du document ou dans la DTDPeuvent être référencées à plusieurs reprisesAppel avec la syntaxe &nom_entite;

Exemple : Il fait 25&deg;C. Permet d’afficher 25̊ C

Caractères ambigus -> Entités prédéfinies :&lt; pour le caractère < (lighter)&gt; pour le caractère > (greater)&amp; pour le caractère & (ampersand)&quot; pour le caractère " (quotation mark)&apos; pour le caractère ’ (apostrophe)

Lettres accentuées et alphabets latins : entités numériques dutype &#code_car; (code_car = code ISO)

Exemple : &#65 ; code l’entité numérique pour le caractère A.

Luiz Angelo Steffenel (URCA) Introduction à XML 26 / 39

Page 27: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Plan

1 Généralités

2 Structure des documents XML

3 Définition et validation d’un XML

Luiz Angelo Steffenel (URCA) Introduction à XML 27 / 39

Page 28: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

DTD d’un document

DTD (Document Type Definition)Définit les éléments et les règles d’utilisation (noms des éléments,attributs possibles pour un élément, imbrications)Si un document n’a pas de DTD et qu’il suit les règles définies parXML il est bien forméSi il est bien formé et qu’il fait référence à une DTD à laquelle ilest conforme, il est dit valideDès qu’il rencontre une erreur, le processeur XML s’arrête

Luiz Angelo Steffenel (URCA) Introduction à XML 28 / 39

Page 29: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Document bien formé

Document bien forméUndocument XML est bien formé (well-formed),s’il respecte lesrègles de la syntaxe XML

Il contientUne déclaration XML,Un ou plusieurs éléments,Un élément racine encapsulant tous les autres éléments et leursattributs

Eléments :Les éléments non vides

Ont une balise de début et de fin,Sont correctement imbriqués <P> <EM> ... </EM> </P>

Les éléments vides ont un / à la fin de la balise,Les noms des balises ouvrantes et fermantes correspondent

Luiz Angelo Steffenel (URCA) Introduction à XML 29 / 39

Page 30: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

XML sans DTDUn document XML peut ne pas avoir une DTD

Balisage définit de manière informelle.Document doit cependant être bien formé, sinon il ne sera pasaffiché par un navigateur.

Lorsque aucune DTD n’est utilisée le document doit préciser dansla déclaration XML qu’il est autonome (Standalone DocumentDeclaration ou SDD)

<?xml version="1.0" encoding="UTF8" standalone="yes"?>

Luiz Angelo Steffenel (URCA) Introduction à XML 30 / 39

Page 31: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

A quoi sert la DTD

La DTD donne la grammaire de l’application XML.les éléments types

les noms de balises autorisésl’ordre autorisé pour les balisesquels éléments peuvent contenir quels élémentsquels éléments sont optionnels

les attributs pour chaque élémentnoms des attributs autorisés, obligatoires / optionnels, leur type,valeur par défaut, etc.

les entités binaires ou textuelles pouvant être incluses dans undocumentles notations qui servent aà identifier les types spécifiques dedonnées externes binaires.

Rappel : une DTD n’et pas nécessaire pour afficher le documentXML mais obligatoire pour l’interpréter.

Luiz Angelo Steffenel (URCA) Introduction à XML 31 / 39

Page 32: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Déclaration d’une DTD

Une DTD XML facultative définit la structure du documentElément racine du documentEnsemble des éléments utilisables et règles d’utilisations

Déclaration de DTD Interne<!DOCTYPE element_racine [ contenu de la DTD ]>

Déclaration de DTD externe (dans plusieurs documents)SYSTEM : DTD stockée sur l’ordinateur à l’adresse précisée.PUBLIC :DTD publiée (par ex par le W3C)

<!DOCTYPE element_racine SYSTEM "uri_DTD">

<!DOCTYPE element_racine PUBLIC "nom" "uri_DTD">

Luiz Angelo Steffenel (URCA) Introduction à XML 32 / 39

Page 33: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Exemple d’une DTD

< !DOCTYPE bibliothèque [< !ELEMENT bibliothèque (livre)* >< !ELEMENT livre (achat,titre,auteurs,éditeur ?) >

< !ATTLIST livre ref ID #IMPLIED lang (fr | en) #IMPLIED >< !ELEMENT achat EMPTY>

< !ATTLIST achat date CDATA "01/01/1900" lieu CDATA #IMPLIED >< !ELEMENT titre (#PCDATA) >

< !ATTLIST titre type (recherche | roman | essai | inclassable)"inclassable" genre (SF | Historique | Enfants | Fantastique)#IMPLIED>< !ELEMENT auteurs (auteur)+>< !ELEMENT auteur (nom,prénom+)>< !ELEMENT nom (#PCDATA)>< !ELEMENT prénom (#PCDATA)>< !ELEMENT éditeur (#PCDATA)>]>

Luiz Angelo Steffenel (URCA) Introduction à XML 33 / 39

Page 34: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Déclaration d’éléments

ELEMENT permet de structurer le document (par exemple livre estun élément d’un document bibliothèque)La déclaration d’éléments est de la forme

<!ELEMENT nom_element modele_de_contenu>

Contenus d’éléments particuliers :Un élément vide ne contient aucun texte, aucun autre élément,comme les éléments IMG, HR, BR de HTML.

<!ELEMENT nom_element EMPTY>

Un élément libre peut contenir tout élément déclaré dans la DTDet du texte.

<!ELEMENT nom_element ANY>

Luiz Angelo Steffenel (URCA) Introduction à XML 34 / 39

Page 35: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Contenu des éléments

Uniquement des donées (Parsed Character DATA)<!ELEMENT nom_element (#PCDATA)>

Uniquement d’autres élémentsDéfinition des éléments

Ordre d’apparition : (élément1, élément2,. . . )Occurrence : ? (0 ou 1 fois), * (0 ou n fois), + (1 ou n fois)Choix : utilisation du |

exemples :<!ELEMENT nom_element ( element1 , element2 ,element3 )><!ELEMENT nom_element ( element1 | element2 |element3 )><!ELEMENT nom_element ( element1? , element2+, element3* )?>

Contenu mixte :<!ELEMENT nom_element ( PCDATA |element-enfant )* >

Luiz Angelo Steffenel (URCA) Introduction à XML 35 / 39

Page 36: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Déclaration d’attributs

AttributsDéclaration d’attributs donne pour un élément cible :

Les noms d’attributs autorisésLe type de chaque attributLa valeur par défaut de l’attribut

Déclaration séparée ou sous forme de listeMot clé de déclaration : ATTLIST

<!ATTLIST element_cible nom_attribut type_attributvaleur_par_défaut>

Luiz Angelo Steffenel (URCA) Introduction à XML 36 / 39

Page 37: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Valeur d’attribut

<!ATTLIST element nom_attribut CDATA "valeur"><!ATTLIST element nom_attribut CDATA #REQUIRED><!ATTLIST element nom_attribut CDATA #IMPLIED><!ATTLIST element nom_attribut CDATA #FIXED"valeur">

Un attribut possèdeUn nom,Un type,Une valeur par défaut (facultative) ou un mot clé de remplacement :

#REQUIRED : valeur d’attribut doit être spécifiée#IMPLIED : valeur d’attribut peut rester non spécifiée#FIXED ’val’ : valeur de l’attribut fixée à "val" et non modifiable parl’utilisateur

Exemples<!ATTLIST achat date CDATA "01/01/1900"><!ATTLIST achat lieu CDATA #IMPLIED >

Luiz Angelo Steffenel (URCA) Introduction à XML 37 / 39

Page 38: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Chaînes de caractères et enumérations

<!ATTLIST element nom_attribut CDATA "valeur" >

CDATA : chaîne de caractèresType le plus courantEx : <!ATTLIST achat lieu CDATA IMPLIED >

<!ATTLIST element_cible nom_attribut (val1 |...| valN) "valdefaut" >

Énumérations de valeurs possiblesListe énumérée de valeur séparées par |

<!ATTLIST titre genre (SF | Historique | Enfants |Fantastique) #IMPLIED>

Luiz Angelo Steffenel (URCA) Introduction à XML 38 / 39

Page 39: INFO0406 · DTD d’un document DTD (Document Type Definition) Définit les éléments et les règles d’utilisation (noms des éléments, attributs possibles pour un élément,

Identificateurs et références

<!ATTLIST element_cible nom_attribut ID>

<!ATTLIST element_cible nom_attribut IDREF>

<!ATTLIST element_cible nom_attribut IDREFS>

ID : identificateur unique d’élémentLa valeur de l’attribut distingue l’élément de tous les autres dans ledocument XML courant.Permet la mise en correspondance des éléments entre eux àl’instar d’une base de données.

IDREF et IDREFS permet à une valeur d’attribut de faireréférence à un ou plusieurs identificateurs (ID) d’un autre élément.

<!ATTLIST livre ref ID #IMPLIED >

Luiz Angelo Steffenel (URCA) Introduction à XML 39 / 39