7
DOCUMENT VALIDE Obéir à une structure type prédéfini Document valide = bien formé + obéir à une structure type définie dans une DTD <?xml version=‘1.0‘standalone=‘no‘?> <!DOCTYPE achat.ordre SYSTEM “ao.dtd“> <achat.ordre> <date>16 novembre 1999</date> <adresse> <nom>Jean</nom> <numéro>8</numéro> <rue>Boulevard de St Germain</rue> <ville>Paris</ville> <pays>FR</pays> <cp>75005</cp> </adresse> <article> <article> <numéro.produit>248</numéro.produit> <description>champagne,millésimé,1994</description> <quantité>3</quantité> <prix_unitaire>75</prix_unitaire> </article> <article> <numéro.produit>163</numéro.produit> <description>fromage,tartare</description> <quantité>2</quantité> <prix_unitaire>10.30</prix_unitaire> </article> </article> </achat.ordre>

DOCUMENT VALIDE

  • Upload
    zarita

  • View
    24

  • Download
    4

Embed Size (px)

DESCRIPTION

DOCUMENT VALIDE. Obéir à une structure type prédéfini Document valide = bien formé + obéir à une structure type définie dans une DTD. 16 novembre 1999 - PowerPoint PPT Presentation

Citation preview

Page 1: DOCUMENT  VALIDE

DOCUMENT VALIDE

Obéir à une structure type prédéfini Document valide = bien formé + obéir à une structure type définie dans une DTD

<?xml version=‘1.0‘standalone=‘no‘?><!DOCTYPE achat.ordre SYSTEM “ao.dtd“><achat.ordre> <date>16 novembre 1999</date> <adresse> <nom>Jean</nom> <numéro>8</numéro> <rue>Boulevard de St Germain</rue> <ville>Paris</ville> <pays>FR</pays> <cp>75005</cp> </adresse> <article> <article> <numéro.produit>248</numéro.produit> <description>champagne,millésimé,1994</description> <quantité>3</quantité> <prix_unitaire>75</prix_unitaire> </article> <article> <numéro.produit>163</numéro.produit> <description>fromage,tartare</description> <quantité>2</quantité> <prix_unitaire>10.30</prix_unitaire> </article> </article></achat.ordre>

Page 2: DOCUMENT  VALIDE

DTD : interne ou externe d’un document

Les DTD sont une spécification de structure de document réutilisable La composition d’une DTD en répartissant les déclarations entre une section « interne »

et une ou plusieurs sections « externes » Les sections conditionnelles Appel de la DTD dans le document XML

DTD interne

<?xml version=‘1.0‘ standalone=‘yes‘?><!DOCTYPE exemple [<!-- début de la DTD--> <!ELEMENT exemple (#PCDATA)><!--fin de la DTD-->] > <!--début de l’instence--><exemple>test</exemple><!--fin du document-->

DTD externe

<?xml version=‘1.0‘ standalone=‘no‘?><!DOCTYPE exemple SYSTEM”exemple.dtd”><!-- début del’instence--><exemple>test</exemple><!--fin du document-->

exemple.dtd<?xml version=‘1.0‘?> <!-- début de la DTD--> <!ELEMENT exemple (#PCDATA)>

<!--fin de la DTD-->

Page 3: DOCUMENT  VALIDE

Structure et hiérarchie des éléments (structure arbre) (I)

FichierFichier rapport.dtdrapport.dtd <rapport><!ELEMENT rapport (titre,auteur+,chapitre+,toc,index,)> <titre>...</titre><!ELEMENT titre (#PCDATA)> <auteur> <!ELEMENT auteur (prénom+, nom)> <prénom>...</prénom><!ELEMENT prénom (#PCDATA)> <nom>...</nom><!ELEMENT nom (#PCDATA)> </auteur><!ELEMENT chapitre(tchap, intro?, sec1*)> <auteur> <!ATTLIST chapitre target ID #IMPLIED> <prénom>...</prénom><!ELEMENT sec1 (tsec,(p sec2)*)> <nom>...</nom><!ATTLIST sec1 target ID #IMPLIED> </auteur><!ELEMENT sec2 (tsec,(p sec3)*)> <chapitre><!ATTLIST sec2 target ID #IMPLIED> <tchap>...</tchap><!ELEMENT tsec (#PCDATA)> <intro>...</intro><!ELEMENT sec3 (tsec,p)> <sec1>...</sec1><!ATTLIST sec3 target ID #IMPLIED> ......................... <!ELEMENT p (#PCDATA em renvoi tableau )*> </chapitre><!ATTLIST p target ID #IMPLIED> </rapport><!ELEMENT em (#PCDATA)><!ELEMENT renvoi EMPTY> <!ATTLIST renvoi ref IDREF #REQUIRED> <!ELEMENT toc ANY><!ELEMENT index ANY><!ENTITY %tab SYSTEM ‘./tableau.dtd’ >%tab;

HiérarchieStructure

Page 4: DOCUMENT  VALIDE

Fichier Fichier tableau .dtdtableau .dtd

<!ELEMENT tableau (legende,lig,lig+) ><!-- un tableau doit avoire au moins deux lignes--><!ELEMENT legende (#PCDATA)><! ATTLIST legende no CDATA #IMPLIED> <! ATTLIST legende target ID #IMPLIED> <!ELEMENT lig (cell,cell+)><!--une ligne doit avoire au moins deux cellules donc un tableau aura au moins deux colonnes--><! ATTLIST lig n1 CDATA #IMPLIED ><!ELEMENT cell (#PCDATA)><! ATTLIST cell colspan CDATA #IMPLIED >

Fihier mon_rapport .xmlFihier mon_rapport .xml

<?xml version=‘1.0’ standalone=‘no‘?><!DOTYPE rapport SYSTEM ‘/usr/loal/edit/xml/dtd/rapport.dtd’><rapport> <titre>Test</titre> ………………… <tableau></tableau></rapport>

Structure et hiérarchie des éléments (structure arbre) (II)

Page 5: DOCUMENT  VALIDE

CONTENU D’UNE DTD

Les déclarations d’entités généralesLes déclarations d’entités paramètresLes déclarations de notionsLes déclarations d’élémentsLes déclarations de listes d’attributsLes commentaires

<!DOCTYPE test [<!ENTITY exemple “Ceci est un exemple”><!ELEMENT date (#PCDATA)> <!ATTLIST date format (ISO | EN-exp | FR-exp) #REQUIRED)>]<!--début de l’instance--><test> <p>&exemple</p> <date format=“ISO“>1999-11-16</date></test>

Page 6: DOCUMENT  VALIDE

RÉUTILISATION DES DIVERSES RESSOURCES DISPONIBLES ET LES INCONVÉNIENTS Réalisation des documents complexes est très simples Les conflits de noms sont les seules difficultés Le conflit apparaîtra lorsqu’une application (un navigateur) traitera le document

<?xml version’1.0’ standalone=‘no‘?><!DOCTYPE rapport [<!ELEMENT rapport ANY><!ENTITY % dc SYSTEM ’http://pur1.oclc.org/metadata/dublin-core.dtd’> <!ENTITY % basic SYSTEM ’http://foo.bar.org/XML/basic-text.dtd’> <!ENTITY % bib SYSTEM ’http://xyz.org/Xml-bib/biblio.dtd’> <!ENTITY % ad SYSTEM ’http://local/xml/adresses.dtd’> <!ENTITY % math SYSTEM ’http://www.w3.org/TR/REC-MathML/MathML.dtd’>%dc;%basic;%bib;%ad;%math;]<rapport> .................. <fn><fn> <apply><apply> <int/><int/> <bvar><ci>x</ci></bvar><bvar><ci>x</ci></bvar> <lowlimit><cn>0</cn></lowlimit><lowlimit><cn>0</cn></lowlimit> <uplimit><cn>1</cn></uplimit><uplimit><cn>1</cn></uplimit> </apply></apply> </fn></fn><fn id=‘note21‘>quelque commentaire</fn></rapport>

Page 7: DOCUMENT  VALIDE

RESOUDRE CEPROBLÈME GRACE AUX DOMAINES NOMINAUX

Les conflits ne seraient pas apparus, si les auteurs n’importent pas de déclarations dans la DTD sans regarder ce qu’elles contiennent

Les domaines nominaux permettent lors de l’édition d’un document d’utiliser des noms garantis uniques

La déclaration d’un domaine nominal se fait à l’aide de l’attribut spécial xmlns:

<?xml version=“1.0”?><!DOCTYPE rapport SYSTEM “rapport.dtd”><rapport xmlns:math=“http://www.w3.org/TR/1998/REC-MathML-19980407.html” xmlns:bt=“http://foo.bar.org/xml/schemas/Basic-text.dtd> ..............

<math:fn> <math:apply> <math:int/> <math:bvar><math:ci>x</math:ci></math:bvar> <math:lowlimit><math:cn>0</math:cn></math:lowlimit> <math:uplimit><math:cn>1</math:cn></math:uplimit> </math:apply> </math:fn> <bt:fn bt:id=‘note21‘>commentaire</bt:fn> ..................</rapport>