60
Schémas XML Stéphane Crozat Ingénierie Documentaire http://doc.crzt.fr 14 septembre 2016

Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Scheacutemas XML

Steacutephane Crozat

Ingeacutenierie Documentairehttpdoccrztfr

14 septembre 2016

Table des matiegraveres

I - Introduction aux scheacutemas XML 4

1 Notion de document valide 4

2 Document Type Definition 5

3 W3C XML Schema 5

4 Regular Language for XML Next Generation 6

II - Deacutefinition de type de document 8

1 Deacuteclaration deacuteleacutements 8

2 Deacuteclaration deacuteleacutements EMPTY et ANY 10

3 Deacuteclarations de listes dattributs 11

4 Identifiants et reacutefeacuterences (ID et IDREF) 12

5 Contenu mixte (mixed content) 13

6 Deacuteclaration de DTD dans les fichiers XML 14

7 Exemple de DTD 15

8 Inconveacutenients et avantages des DTD 15

9 La syntaxe DTD en reacutesumeacute 16

III - RelaxNG 18

1 Relax NG Syntaxe XML 18

2 Patterns nommeacutes 19

3 Ensembles non ordonneacutes 21

4 Contenu mixte 21

5 Namespace cible 23

6 Inclusion de scheacutemas 23

7 Types de donneacutees 24

8 Relax NG Syntaxe Compacte 25

9 Compleacutement Principes de conception de scheacutemas 27

10 Pour aller plus loin 27

IV - Exemples 28

1 Exemple Carnet dadresse (XML DTD Relax NG) 28

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD) 30

V - Exercices 33

1 Exercices DTD 33

11 Exercice Une DTD 3312 Exercice 3313 Exercice Utiliser des DTD avec Oxygen 3414 Exercice 35

2 Quiz DTD 38

21 Preacuteambule 3822 Exercice Fichiers bien formeacutes 3923 Exercice Fichiers valides 3924 Exercice Scheacutema inteacutegrateur 39

3 Exercices RelaxNG 39

31 Exercice 4032 Exercice 4133 Exercice 4234 Exercice 4435 Exercice Scheacutema CV 45

Solutions des exercices 46

Abreacuteviations 57

Bibliographie 58

Webographie 59

Index 60

Introduction aux scheacutemas XML

4

-

-

-

-

--

1 Notion de document valide

Un scheacutema est une description de la structure que doit respecter un document lui faisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avec leurs attributs) ainsi que lagencement possible de ces eacuteleacutements

On parle aussi de au sens ougrave le scheacutema deacutefinit lenchaicircnement autoriseacute des balises et grammairevient en (qui elle est indeacutependante dun scheacutema particulier)compleacutement de la syntaxe XML

Un document bien formeacute est dit valide pour un scheacutema donneacute sil respecte les regravegles XML

structurelles imposeacutees par ce scheacutema

Ce controcircle de la structure permet

De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme typeLe traitement automatique dun ensemble de documents de mecircme type (mise en forme stockage extraction dinformations)La creacuteation de formats standard et leur respect

Il existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont

Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partie du standard XMLW3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser et compleacuteter ce langage historiqueRelax NG (OASIS ISO) Une autre alternative compromis entre W3C XML Schema et DTD

Introduction aux scheacutemas XML I

Deacutefinition Scheacutema

Deacutefinition Document valide

Exemple Exemples de langages de scheacutema

W3C XML Schema

5

---

-

-

2 Document Type Definition

Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves la premiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XML

Il est directement heacuteriteacute de la norme SGML

Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regravegles structurelles Un fichier de DTD peut contenir principalement deux types de deacuteclarations

des deacuteclarations deacuteleacutementsindiquent les eacuteleacutements pouvant ecirctre inclus dans un document et lorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)des deacuteclarations dattributsdeacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leur type

1 ( +)gt2 gt3 ( )gt

1 23 =4   Lorem ipsum dolor sit amet5   Consectetur adipiscing elit6   Sed do eiusmod tempor78

3 W3C XML Schema

Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser les limites des DTD

httpwwww3orgXMLSchema

On notera en particulier

une syntaxe XMLlextension de lexpression des regravegles dorganisation structurelle (heacuteritage reacuteutilisation etc)lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour les format XML orienteacutes donneacutees)

Exemple Exemple de DTD

Exemple Exemple de document XML valide

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgt

=ltdocument type memogt  Lorem ipsum dolor sit ametltparagraphegt ltparagraphegt  Consectetur adipiscing elitltparagraphegt ltparagraphegt  Sed do eiusmod temporltparagraphegt ltparagraphegtltdocumentgt

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 2: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Table des matiegraveres

I - Introduction aux scheacutemas XML 4

1 Notion de document valide 4

2 Document Type Definition 5

3 W3C XML Schema 5

4 Regular Language for XML Next Generation 6

II - Deacutefinition de type de document 8

1 Deacuteclaration deacuteleacutements 8

2 Deacuteclaration deacuteleacutements EMPTY et ANY 10

3 Deacuteclarations de listes dattributs 11

4 Identifiants et reacutefeacuterences (ID et IDREF) 12

5 Contenu mixte (mixed content) 13

6 Deacuteclaration de DTD dans les fichiers XML 14

7 Exemple de DTD 15

8 Inconveacutenients et avantages des DTD 15

9 La syntaxe DTD en reacutesumeacute 16

III - RelaxNG 18

1 Relax NG Syntaxe XML 18

2 Patterns nommeacutes 19

3 Ensembles non ordonneacutes 21

4 Contenu mixte 21

5 Namespace cible 23

6 Inclusion de scheacutemas 23

7 Types de donneacutees 24

8 Relax NG Syntaxe Compacte 25

9 Compleacutement Principes de conception de scheacutemas 27

10 Pour aller plus loin 27

IV - Exemples 28

1 Exemple Carnet dadresse (XML DTD Relax NG) 28

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD) 30

V - Exercices 33

1 Exercices DTD 33

11 Exercice Une DTD 3312 Exercice 3313 Exercice Utiliser des DTD avec Oxygen 3414 Exercice 35

2 Quiz DTD 38

21 Preacuteambule 3822 Exercice Fichiers bien formeacutes 3923 Exercice Fichiers valides 3924 Exercice Scheacutema inteacutegrateur 39

3 Exercices RelaxNG 39

31 Exercice 4032 Exercice 4133 Exercice 4234 Exercice 4435 Exercice Scheacutema CV 45

Solutions des exercices 46

Abreacuteviations 57

Bibliographie 58

Webographie 59

Index 60

Introduction aux scheacutemas XML

4

-

-

-

-

--

1 Notion de document valide

Un scheacutema est une description de la structure que doit respecter un document lui faisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avec leurs attributs) ainsi que lagencement possible de ces eacuteleacutements

On parle aussi de au sens ougrave le scheacutema deacutefinit lenchaicircnement autoriseacute des balises et grammairevient en (qui elle est indeacutependante dun scheacutema particulier)compleacutement de la syntaxe XML

Un document bien formeacute est dit valide pour un scheacutema donneacute sil respecte les regravegles XML

structurelles imposeacutees par ce scheacutema

Ce controcircle de la structure permet

De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme typeLe traitement automatique dun ensemble de documents de mecircme type (mise en forme stockage extraction dinformations)La creacuteation de formats standard et leur respect

Il existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont

Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partie du standard XMLW3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser et compleacuteter ce langage historiqueRelax NG (OASIS ISO) Une autre alternative compromis entre W3C XML Schema et DTD

Introduction aux scheacutemas XML I

Deacutefinition Scheacutema

Deacutefinition Document valide

Exemple Exemples de langages de scheacutema

W3C XML Schema

5

---

-

-

2 Document Type Definition

Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves la premiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XML

Il est directement heacuteriteacute de la norme SGML

Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regravegles structurelles Un fichier de DTD peut contenir principalement deux types de deacuteclarations

des deacuteclarations deacuteleacutementsindiquent les eacuteleacutements pouvant ecirctre inclus dans un document et lorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)des deacuteclarations dattributsdeacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leur type

1 ( +)gt2 gt3 ( )gt

1 23 =4   Lorem ipsum dolor sit amet5   Consectetur adipiscing elit6   Sed do eiusmod tempor78

3 W3C XML Schema

Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser les limites des DTD

httpwwww3orgXMLSchema

On notera en particulier

une syntaxe XMLlextension de lexpression des regravegles dorganisation structurelle (heacuteritage reacuteutilisation etc)lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour les format XML orienteacutes donneacutees)

Exemple Exemple de DTD

Exemple Exemple de document XML valide

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgt

=ltdocument type memogt  Lorem ipsum dolor sit ametltparagraphegt ltparagraphegt  Consectetur adipiscing elitltparagraphegt ltparagraphegt  Sed do eiusmod temporltparagraphegt ltparagraphegtltdocumentgt

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 3: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

9 Compleacutement Principes de conception de scheacutemas 27

10 Pour aller plus loin 27

IV - Exemples 28

1 Exemple Carnet dadresse (XML DTD Relax NG) 28

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD) 30

V - Exercices 33

1 Exercices DTD 33

11 Exercice Une DTD 3312 Exercice 3313 Exercice Utiliser des DTD avec Oxygen 3414 Exercice 35

2 Quiz DTD 38

21 Preacuteambule 3822 Exercice Fichiers bien formeacutes 3923 Exercice Fichiers valides 3924 Exercice Scheacutema inteacutegrateur 39

3 Exercices RelaxNG 39

31 Exercice 4032 Exercice 4133 Exercice 4234 Exercice 4435 Exercice Scheacutema CV 45

Solutions des exercices 46

Abreacuteviations 57

Bibliographie 58

Webographie 59

Index 60

Introduction aux scheacutemas XML

4

-

-

-

-

--

1 Notion de document valide

Un scheacutema est une description de la structure que doit respecter un document lui faisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avec leurs attributs) ainsi que lagencement possible de ces eacuteleacutements

On parle aussi de au sens ougrave le scheacutema deacutefinit lenchaicircnement autoriseacute des balises et grammairevient en (qui elle est indeacutependante dun scheacutema particulier)compleacutement de la syntaxe XML

Un document bien formeacute est dit valide pour un scheacutema donneacute sil respecte les regravegles XML

structurelles imposeacutees par ce scheacutema

Ce controcircle de la structure permet

De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme typeLe traitement automatique dun ensemble de documents de mecircme type (mise en forme stockage extraction dinformations)La creacuteation de formats standard et leur respect

Il existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont

Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partie du standard XMLW3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser et compleacuteter ce langage historiqueRelax NG (OASIS ISO) Une autre alternative compromis entre W3C XML Schema et DTD

Introduction aux scheacutemas XML I

Deacutefinition Scheacutema

Deacutefinition Document valide

Exemple Exemples de langages de scheacutema

W3C XML Schema

5

---

-

-

2 Document Type Definition

Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves la premiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XML

Il est directement heacuteriteacute de la norme SGML

Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regravegles structurelles Un fichier de DTD peut contenir principalement deux types de deacuteclarations

des deacuteclarations deacuteleacutementsindiquent les eacuteleacutements pouvant ecirctre inclus dans un document et lorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)des deacuteclarations dattributsdeacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leur type

1 ( +)gt2 gt3 ( )gt

1 23 =4   Lorem ipsum dolor sit amet5   Consectetur adipiscing elit6   Sed do eiusmod tempor78

3 W3C XML Schema

Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser les limites des DTD

httpwwww3orgXMLSchema

On notera en particulier

une syntaxe XMLlextension de lexpression des regravegles dorganisation structurelle (heacuteritage reacuteutilisation etc)lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour les format XML orienteacutes donneacutees)

Exemple Exemple de DTD

Exemple Exemple de document XML valide

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgt

=ltdocument type memogt  Lorem ipsum dolor sit ametltparagraphegt ltparagraphegt  Consectetur adipiscing elitltparagraphegt ltparagraphegt  Sed do eiusmod temporltparagraphegt ltparagraphegtltdocumentgt

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 4: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Introduction aux scheacutemas XML

4

-

-

-

-

--

1 Notion de document valide

Un scheacutema est une description de la structure que doit respecter un document lui faisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avec leurs attributs) ainsi que lagencement possible de ces eacuteleacutements

On parle aussi de au sens ougrave le scheacutema deacutefinit lenchaicircnement autoriseacute des balises et grammairevient en (qui elle est indeacutependante dun scheacutema particulier)compleacutement de la syntaxe XML

Un document bien formeacute est dit valide pour un scheacutema donneacute sil respecte les regravegles XML

structurelles imposeacutees par ce scheacutema

Ce controcircle de la structure permet

De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme typeLe traitement automatique dun ensemble de documents de mecircme type (mise en forme stockage extraction dinformations)La creacuteation de formats standard et leur respect

Il existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont

Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partie du standard XMLW3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser et compleacuteter ce langage historiqueRelax NG (OASIS ISO) Une autre alternative compromis entre W3C XML Schema et DTD

Introduction aux scheacutemas XML I

Deacutefinition Scheacutema

Deacutefinition Document valide

Exemple Exemples de langages de scheacutema

W3C XML Schema

5

---

-

-

2 Document Type Definition

Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves la premiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XML

Il est directement heacuteriteacute de la norme SGML

Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regravegles structurelles Un fichier de DTD peut contenir principalement deux types de deacuteclarations

des deacuteclarations deacuteleacutementsindiquent les eacuteleacutements pouvant ecirctre inclus dans un document et lorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)des deacuteclarations dattributsdeacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leur type

1 ( +)gt2 gt3 ( )gt

1 23 =4   Lorem ipsum dolor sit amet5   Consectetur adipiscing elit6   Sed do eiusmod tempor78

3 W3C XML Schema

Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser les limites des DTD

httpwwww3orgXMLSchema

On notera en particulier

une syntaxe XMLlextension de lexpression des regravegles dorganisation structurelle (heacuteritage reacuteutilisation etc)lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour les format XML orienteacutes donneacutees)

Exemple Exemple de DTD

Exemple Exemple de document XML valide

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgt

=ltdocument type memogt  Lorem ipsum dolor sit ametltparagraphegt ltparagraphegt  Consectetur adipiscing elitltparagraphegt ltparagraphegt  Sed do eiusmod temporltparagraphegt ltparagraphegtltdocumentgt

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 5: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

W3C XML Schema

5

---

-

-

2 Document Type Definition

Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves la premiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XML

Il est directement heacuteriteacute de la norme SGML

Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regravegles structurelles Un fichier de DTD peut contenir principalement deux types de deacuteclarations

des deacuteclarations deacuteleacutementsindiquent les eacuteleacutements pouvant ecirctre inclus dans un document et lorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)des deacuteclarations dattributsdeacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leur type

1 ( +)gt2 gt3 ( )gt

1 23 =4   Lorem ipsum dolor sit amet5   Consectetur adipiscing elit6   Sed do eiusmod tempor78

3 W3C XML Schema

Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser les limites des DTD

httpwwww3orgXMLSchema

On notera en particulier

une syntaxe XMLlextension de lexpression des regravegles dorganisation structurelle (heacuteritage reacuteutilisation etc)lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour les format XML orienteacutes donneacutees)

Exemple Exemple de DTD

Exemple Exemple de document XML valide

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgt

=ltdocument type memogt  Lorem ipsum dolor sit ametltparagraphegt ltparagraphegt  Consectetur adipiscing elitltparagraphegt ltparagraphegt  Sed do eiusmod temporltparagraphegt ltparagraphegtltdocumentgt

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 6: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Regular Language for XML Next Generation

6

---

-

--

-

1 ( +)gt2 gt3 ( )gt

1 2 = 3    =4     5       6          = = 7       8        = =9     

10   11    = =12

4 Regular Language for XML Next Generation

RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutema XML

RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combine les avantages de ces deux autres langagesRelaxNG est un standard OASIS et une norme ISOCEIDeux syntaxes une syntaxe XML (alternative agrave W3C Schema) et une syntaxe compacte (alternative aux DTD)RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des donneacutees

httprelaxngorg

Le standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de la fusion de Trex et Relax de Murata Makoto)

OpenDocument (format bureautique)DocBook (format documentaire)Atom (syndication)

1 ( +)gt2 gt

Exemple Exemple de DTD

Exemple Exemple de W3C XML Schema correspondant

Compleacutement

Exemple Exemple de scheacutemas publics deacutefinis en Relax NG

Exemple Exemple de DTD

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED ( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt = ltxsschema xmlnsxs httpwwww3org2001XMLSchemagt

   =ltxselement name documentgt    ltxscomplexTypegt      ltxssequencegt         = = ltxselement maxOccurs unbounded ref paragraphegt      ltxssequencegt       = =ltxsattribute name type use requiredgt    ltxscomplexTypegt  ltxselementgt   = =ltxselement name paragraphe type xsstringgt

ltxsschemagt

( +)gtltELEMENT document paragraphe gtltATTLIST document type CDATA REQUIRED

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 7: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Regular Language for XML Next Generation

7

3 ( )gt

1 2 =3   4      =5        =6       7          =8           9         

10         11     12   13

1 start = element document 2   attribute type text 3   element paragraphe text+ 4

1 2 =3   4      =5   6    =7      =8        =9       

10          =11       12     13   14    =15      =16       17     18   19

1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)

Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)

Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)

( )gtltELEMENT paragraphe PCDATA

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltelement name paragraphegt          lttextgt        ltelementgt        ltoneOrMoregt    ltelementgt  ltstartgtltgrammargt

start = element document   attribute type text   element paragraphe text+

ltxml version=10 encoding=UTF-8gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

  ltstartgt     =ltref name documentgt  ltstartgt   =ltdefine name documentgt     =ltelement name documentgt       =ltattribute name typegt      ltoneOrMoregt         =ltref name paragraphegt      ltoneOrMoregt    ltelementgt  ltdefinegt   =ltdefine name paragraphegt     =ltelement name paragraphegt      lttextgt    ltelementgt  ltdefinegtltgrammargt

start = documentdocument = element document attribute type text paragraphe+ paragraphe = element paragraphe text

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 8: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Deacutefinition de type de document

8

-

-

-

-

-

1 Deacuteclaration deacuteleacutements

Les deacuteclarations deacuteleacutements sont de la forme

1 ltELEMENT nom (modegravele)gt

ougrave

Le obeacuteit aux mecircmes regravegles que les noms dans les balises cest agrave dire commenccedilant par un nom

caractegravere alphabeacutetique (ou un tiret bas) suivi des caractegraveres alphanumeacuteriques point ou tiret basLe deacutecrit la combinaison deacuteleacutements et de texte qui pourra ecirctre contenue dans cet modegravele

eacuteleacutement

(nom dun ou plusieurs eacuteleacutement fils)

Indique que leacuteleacutement peut contenir un ou des fils ayant le nom indiqueacute(PCDATA)

Indique la possibiliteacute de contenir un flot de caractegraveres ( )Parsed Character Data

1 ltELEMENT texte (paragraphe)gt2 ltELEMENT paragraphe (PCDATA)gt

Un texte contient un paragraphe qui contient un flux de caractegraveres

1 lttextegt2   ltparagraphegtCeci est un flux de caractegraveresltparagraphegt3 lttextegt

Les eacuteleacutements fils deacuteclareacutes peuvent ecirctre combineacutes pour deacutecrire en deacutetail la structure du contenu de leacuteleacutement en les seacuteparant par

Indique une relation dordre (connecteur logique avec une notion dordre) si par AND

exemple si le modegravele est alors leacuteleacutement x devra ecirctre preacutesent et ce avant leacuteleacutement y(xy)

Deacutefinition de type de document II

Syntaxe Deacuteclaration deacuteleacutements

Exemple Exemple de deacuteclaration deacuteleacutements

Syntaxe Seacuteparateur de structuration

ltELEMENT nom (modegravele)gt

ltELEMENT texte (paragraphe)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  ltparagraphegtCeci est un flux de caractegraveresltparagraphegtlttextegt

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 9: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Deacuteclaration deacuteleacutements

9

---

- |

Indique une alternative (connecteur logique ou exclusif ) Le modegravele indique XOR (x|y)

soit x soit y

Lutilisation de parenthegraveses permet de creacuteer des sous-listes dans la liste principale pour lesquelles les suffixes de cardinaliteacute sont eacutegalement applicables

1 ltELEMENT texte (titre paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT paragraphe (PCDATA)gt

1 lttextegt2   lttitregtCeci est le flux de caractegraveres du titrelttitregt3   ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegt4 lttextegt

1 ltELEMENT texte ((titre | accroche) paragraphe)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT accroche (PCDATA)gt4 ltELEMENT paragraphe (PCDATA)gt

Les eacuteleacutements fils peuvent ecirctre deacuteclareacutes avec des suffixes permettant dexprimer leur cardinaliteacute

leacuteleacutement devra ecirctre preacutesent de 0 agrave 1 fois leacuteleacutement devra ecirctre preacutesent de 0 agrave n fois+ leacuteleacutement devra ecirctre preacutesent de 1 agrave n fois

Labsence de suffixe indique que leacuteleacutement doit apparaicirctre une et une seule fois

Les eacuteleacutements x y z1 et z2 sont repreacutesenteacutes vides pour alleacuteger lexemple

1 ltELEMENT mon_elem (x y (z1 z2)+)gt

permet

1  ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt2  ltmon_elemgt ltz1gtltz2gt ltmon_elemgt3  ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt4  ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt5  ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt6  

Exemple Exemple de deacuteclaration de deux eacuteleacutements fils ordonneacutes

Exemple Exemple de deacuteclaration dalternative

Syntaxe Suffixes de cardinaliteacute

Exemple Exemple geacuteneacuteral

ltELEMENT texte (titre paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

lttextegt  lttitregtCeci est le flux de caractegraveres du titrelttitregt  ltparagraphegtCeci est le flux de caractegraveres du paragrapheltparagraphegtlttextegt

ltELEMENT texte ((titre | accroche) paragraphe)gtltELEMENT titre (PCDATA)gtltELEMENT accroche (PCDATA)gtltELEMENT paragraphe (PCDATA)gt

ltELEMENT mon_elem (x y (z1 z2)+)gt

 ltmon_elemgt ltxgtltygtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltxgtltygtltygtltygtltz1gtltz2gtltz1gtltz2gt ltmon_elemgt ltmon_elemgt ltygtltygtltygtltygtltz1gtltz2gt ltmon_elemgt 

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 10: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Deacuteclaration deacuteleacutements EMPTY et ANY

10

Leacuteleacutement racine nest pas speacutecifieacute dans une DTD il le sera dans la reacutefeacuterence agrave la DTD faite depuis le fichier XML Cela permet en particulier agrave une DTD de speacutecifier plusieurs langages (plusieurs eacuteleacutements racines) mecircme si cela nest pas en geacuteneacuteral conseilleacute

Par convention on deacuteclarera en premier leacuteleacutement racine

2 Deacuteclaration deacuteleacutements EMPTY et ANY

1 ltELEMENT nom_element ANYgt

Leacuteleacutement pourra contenir des flots de caractegraveres ainsi que nimporte quels eacuteleacutements deacuteclareacutes par ailleurs

Il est possible de deacuteclarer un eacuteleacutement vide en utilisant la syntaxe EMPTY

1 ltELEMENT nom_element EMPTYgt

Leacuteleacutement doit ecirctre vide Il contiendra neacuteanmoins geacuteneacuteralement des attributs

ANY et EMPTY ne sont pas combinables avec dautres deacutefinitions deacuteleacutements fils mais sont compatibles avec des deacutefinitions dattributs

1 ltELEMENT monElement1 ANYgt2 ltELEMENT monElement2 EMPTYgt3 permet 4  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt5  ltmonElement1gtau revoirltmonElement2gtltmonElement1gt6  ltmonElement1gtltmonElement1gt7  

1 ltELEMENT monElement1 EMPTYgt2 permet 3 ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Attention Eacuteleacutement racine

Syntaxe Element de type ANY

Syntaxe Element de type EMPTY

Remarque

Exemple Exemple 1 Le paramegravetre ANY

Exemple Exemple 2 Le paramegravetre EMPTY

ltELEMENT nom_element ANYgt

ltELEMENT nom_element EMPTYgt

ltELEMENT monElement1 ANYgtltELEMENT monElement2 EMPTYgtpermet  ltmonElement1gtltmonElement2gtbonjourltmonElement1gt ltmonElement1gtau revoirltmonElement2gtltmonElement1gt ltmonElement1gtltmonElement1gt 

ltELEMENT monElement1 EMPTYgtpermet ltmonElement1gt ou ltmonElement1gtltmonElement1gt

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 11: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Deacuteclarations de listes dattributs

11

-

-

-

-

-

-

-

-

-

3 Deacuteclarations de listes dattributs

Les deacuteclarations dattributs correspondent agrave la forme geacuteneacuterale

1 ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ougrave

nom-eacuteleacutement Nom de leacuteleacutement pour lequel les attributs deacuteclareacutes seront applicablesXML

nom-attribut Nom de lattribut des eacuteleacutements diffeacuterents peuvent avoir des attributs de mecircme nom sans quil y ait de confusion possible car un attribut est toujours deacuteclareacute en mecircme temps que leacuteleacutement auquel il est attacheacutetype-attribut Les deux types principaux sont

CDATALattribut aura pour valeur une chaicircne de caractegraveresListe de choixUne liste de noms symboliques correspondant aux valeurs possibles pour lattribut et se preacutesentant sous la forme (choix1 | choix2 | | choixN)

deacuteclaration-de-contrainte Les deux formes principales de contrainte sont

REQUIREDLattribut est obligatoireIMPLIEDLattribut est facultatif

La syntaxe permet de deacuteclarer des listes dattributs car il est possible de reacutepeacuteter le ATTLIST pattern nom-attribut type-attribut deacuteclaration-de-contrainte

1 ltELEMENT x EMPTYgt2 ltATTLIST x 3  att1 CDATA REQUIRED4  att2 (a | b | c) IMPLIED5 gt

En plus des types et liste de choix les attributs peuvent avoir les types suivants CDATA

ID ou IDREF

Syntaxe Deacuteclaration dattribut

Remarque Deacuteclaration de liste dattributs

Exemple Deacuteclaration de liste dattributs

Compleacutement Autres types dattributs

ltATTLIST nom-eacuteleacutement nom-attribut type-attribut deacuteclaration-de-contraintegt

ltELEMENT x EMPTYgtltATTLIST x  att1 CDATA REQUIRED att2 (a | b | c) IMPLIEDgt

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 12: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Identifiants et reacutefeacuterences (ID et IDREF)

12

---

-

-

-

-

-

Sont utiliseacutes pour deacutefinir des liens agrave linteacuterieur dun document ID identifiant de maniegravere unique tous les eacuteleacutements pouvant ecirctre reacutefeacuterenceacutes et IDREF indiquant la reacutefeacuterence agrave cet identifiantNMTOKEN ou NMTOKENSPermet agrave lattribut de prendre pour valeur un ou des noms symboliques quelconques formeacutes de caractegraveres alphanumeacuteriquesENTITY ou ENTITIESLattribut prendra pour valeur le nom dune ou plusieurs entiteacutes externes non XML (images)NOTATIONEst utiliseacute pour des eacuteleacutements ayant un contenu non XML lattribut aura alors pour valeur le nom de lapplication qui a eacuteteacute associeacutee agrave lapplication externe traitant le type de contenu concerneacute lors dune deacuteclaration de type NOTATION

En plus des deacuteclarations IMPLIED et REQUIRED les attributs peuvent avoir les deacuteclaration de contrainte

Valeur par deacutefautIndique la valeur par deacutefaut prise par lattribut (en accord avec son type) sil nest pas renseigneacute Lattribut peut donc ecirctre renseigneacute ou non (comme un IMPLIED) mais sil ne lest pas il prend la valeur par deacutefaut speacutecifieacutee Se note valeurFIXED valeurLattribut prend toujours la valeur indiqueacutee il est constant Il doit donc toujours ecirctre renseigneacute (comme un REQUIRED) mais toujours avec la mecircme valeur

ID et REFID (cf p12)

4 Identifiants et reacutefeacuterences (ID et IDREF)

Les attributs de type ID permettent didentifier de faccedilon unique un eacuteleacutement La valeur dun attribut (sinon le de type ID est unique parmi toutes les valeurs des attributs ID de tout le document

document nest pas valide principe duniciteacute)

On notera eacutegalement que

la valeur dun attribut ID est de type NMTOKENun eacuteleacutement ne peut avoir quun seul attribut de type IDun attribut ID peut ecirctre optionnel (IMPLIED) ou obligatoire (REQUIRED)

1 ltELEMENT e ()gt2 ltATTLIST e

Compleacutement Autres deacuteclarations de contraintes

Compleacutement Voir aussi

Deacutefinition Eacuteleacutement identifieacute par un attribut identifiant (ID)

Syntaxe

ltELEMENT e ()gtltATTLIST e

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 13: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Contenu mixte (mixed content)

13

3 a ID REQUIREDgt

Les attributs de type IDREF permettent de faire reacutefeacuterence agrave un eacuteleacutement identifieacute par la valeur de lattribut ID correspondant La valeur dun attribut IDREF doit correspondre agrave la valeur dun

(sinon le document nest pas valide principe dinteacutegriteacute reacutefeacuterentielle)attribut ID dans le document

1 ltELEMENT e ()gt2 ltATTLIST e3 a IDREF REQUIREDgt

Un attribut de type IDREFS permet de faire reacutefeacuterence agrave eacuteleacutement identifieacutes le seacuteparateur plusieurseacutetant un espace (reacutefeacuterence de cardinaliteacute NM)

1 lt-- dtdiddtd --gt2 ltELEMENT e1 (e2 | e3 | e4)gt3 ltELEMENT e2 (PCDATA)gt4 ltELEMENT e3 (PCDATA)gt5 ltELEMENT e4 (PCDATA)gt6 ltATTLIST e27 id ID REQUIREDgt8 ltATTLIST e39 ref IDREF IMPLIEDgt

10 ltATTLIST e411 refs IDREFS IMPLIEDgt

1 lte1gt2  lte2 id=id1gtlte2gt3  lte2 id=id2gtlte2gt4  5  lte3 ref=id1gt6  7  lte4 refs=id1 id2gt8 lte1gt

5 Contenu mixte (mixed content)

On appelle (contenu mixte en franccedilais) un eacuteleacutement XML contenant agrave la fois du flux mixed contenttexte (PCDATA) et des eacuteleacutements fils

On appelle eacuteleacutement un tel eacuteleacutement au sens dinclus dans le flux de caractegraveres dans la ligneinline

Deacutefinition Reacuteference agrave des eacuteleacutements identifieacutes (IDREF)

Syntaxe

Remarque IDREFS

Exemple DTD avec ID IDREF IDREFS

Exemple Extrait de document XML valide par rapport agrave dtdiddtd

Deacutefinition

a ID REQUIREDgt

ltELEMENT e ()gtltATTLIST ea IDREF REQUIREDgt

lt-- dtdiddtd --gtltELEMENT e1 (e2 | e3 | e4)gtltELEMENT e2 (PCDATA)gtltELEMENT e3 (PCDATA)gtltELEMENT e4 (PCDATA)gtltATTLIST e2id ID REQUIREDgtltATTLIST e3ref IDREF IMPLIEDgtltATTLIST e4refs IDREFS IMPLIEDgt

lte1gt lte2 id=id1gtlte2gt lte2 id=id2gtlte2gt  lte3 ref=id1gt   lte4 refs=id1 id2gtlte1gt

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 14: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Deacuteclaration de DTD dans les fichiers XML

14

---

--

-

-

-

1 ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

PCDATA doit ecirctre deacuteclareacute en premier dans la liste

Seule la forme est autoriseacutee (PCDATA | )

induirait une obligation non controcirclable car PCDATA inclus la (PCDATA | )+

chaicircne vide(PCDATA | ) ou induiraient une alternative ou un ordre non (PCDATA | )+

controcirclables car on ne peut pas diffeacuterencier les caractegraveres non signifiants entre des eacuteleacutements XML et les caractegraveres signifiants faisant partie du flux texte

6 Deacuteclaration de DTD dans les fichiers XML

Linstruction DOCTYPE situeacute en deacutebut de fichier XML (entre lentecircte et la balise racine) permet dassocier un fichier XML agrave la DTD qui permet de la valider Les parseurs validant pourront ainsi directement informer sur la validiteacute du fichier

1 ltxml version=10gt2 ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav1

1OSdtdtopicdtdgt3 lttopicgt4

Une DTD priveacutee est une DTD reacutealiseacutee pour ses besoins propres (langage local)

1 ltDOCTYPE rootElement SYSTEM urlgt

avec

rootElement le nom de leacuteleacutement racineurl est une URL deacutecrivant le chemin de la DTD en local sur un disque en chemin absolu ou relatif par rapport agrave la position du fichier XML ou sur Internet typiquement

ltDOCTYPE topic SYSTEM topicdtdgtltDOCTYPE topic SYSTEM homestctopicdtdgtltDOCTYPE topic SYSTEM httpwwwutcfrics~stctopicdtdgt

Syntaxe

Remarque

Attention

Syntaxe

Syntaxe Deacuteclaration de DTD priveacutee

Exemple Deacuteclaration de DTD priveacutees

ltELEMENT mixedElement (PCDATA | inlineElement1 | inlineElement2 )gt

ltxml version=10gtltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtlttopicgt

ltDOCTYPE rootElement SYSTEM urlgt

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 15: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemple de DTD

15

-

-

-

-

Une DTD publique est une DTD standard mise agrave disposition pour une communauteacute eacutelargie

1 ltDOCTYPE rootElement SYSTEM publicName urlgt

avec

publicName est un nom public pour la DTD qui permettra agrave un systegraveme informatique de rechercher en prioriteacute la DTD via un catalogue localurl est une URL deacutecrivant le chemin de la DTD comme pour le mode SYSTEM

ltDOCTYPE topic PUBLIC -OASISDTD DITA TopicEN httpdocsoasis-openorgditav11OSdtdtopicdtdgtltDOCTYPE html PUBLIC -W3CDTD XHTML 10 StrictEN httpwwww3orgTRxhtml1DTDxhtml1-strictdtdgt

7 Exemple de DTD

1 lt-- topic-likedtd --gt2 ltELEMENT topic (titlebody)gt3 ltATTLIST topic4 id NMTOKEN REQUIREDgt5 ltELEMENT title (PCDATA)gt6 ltELEMENT body (p)+gt7 ltELEMENT p (PCDATA|term)gt8 ltELEMENT term (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE topic SYSTEM topic-likedtdgt3 lttopic id=topic-1gt4 lttitlegtTopic titlelttitlegt5 ltbodygt6 ltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgt7 ltpgtltpgt8 ltbodygt9 lttopicgt

8 Inconveacutenients et avantages des DTD

Les preacutesentent des inconveacutenients et des limites technologiques qui ont susciteacute le DTD

deacuteveloppement de certaines solutions concurrentes

Syntaxe Deacuteclaration de DTD publique

Exemple Les DTD DITA et XHTML

Exemple DTD (inspireacutee de DITA)

Exemple Contenu valide par rapport agrave topic-likedtd

ltDOCTYPE rootElement SYSTEM publicName urlgt

lt-- topic-likedtd --gtltELEMENT topic (titlebody)gtltATTLIST topicid NMTOKEN REQUIREDgtltELEMENT title (PCDATA)gtltELEMENT body (p)+gtltELEMENT p (PCDATA|term)gtltELEMENT term (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltDOCTYPE topic SYSTEM topic-likedtdgtlttopic id=topic-1gtlttitlegtTopic titlelttitlegtltbodygtltpgtThis is un exemple of DITA lttermgttopiclttermgtltpgtltpgtltpgtltbodygtlttopicgt

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 16: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

La syntaxe DTD en reacutesumeacute

16

-----

-

-

Le premier deacutefaut des est quelles seacutecrivent avec un langage speacutecifique avec sa propre DTD

syntaxe ce qui est dautant plus deacuteroutant que lon traite avec un meacuteta-langage (permettant de creacuteer des langages ) On attendrait donc des DTD quelles sexpriment en XML

De plus avec lessor du et son utilisation conjointe avec dautres applications (systegravemes de XML

base de donneacutees notamment) le couple XML+DTD ne fournissait pas une solution satisfaisante car

Il ne garantit pas que les eacuteleacutements terminaux (PCDATA) contiennent des donneacutees dun certain type ou dans un format controcirclableIl ne permet pas dans le cas geacuteneacuteral dexprimer exactement la cardinaliteacute dun eacuteleacutement (indiquer quun tableau doit contenir un nombre x de colonnes et y de lignes)

XML Schema (W3C)Relax NG (OASIS)SchematronExamplotronetc

Les DTD restent aujourdhui tregraves utiliseacutees malgreacute leurs lacunes pour leur simpliciteacute et leur efficaciteacute dans la description des langages de description documentaires

Elles ne sont en revanche plus utiliseacutees pour les langages orienteacutes donneacutees ougrave on leur preacutefegravere largement les XML Schema par exemple

La DocBook ( ) est une DTD posant les regravegles de structuration de livres techniques wwwdocbookorg(en particulier dans le domaine de linformatique) en chapitres parties etc

9 La syntaxe DTD en reacutesumeacute

La syntaxe des DTD repose sur un langage deacuteclaratif permettant de speacutecifier les eacuteleacutements autoriseacutes et pour chaque eacuteleacutement autoriseacute les fils quil peut contenir Les aspects essentiels de la syntaxe sont preacutesenteacutes dans le tableau ci-dessous

Exemple Langages concurrents des DTD

Attention Quel utilisation des DTD

Exemple Une DTD standard

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 17: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

La syntaxe DTD en reacutesumeacute

17

Aspects principaux de la syntaxe des DTD

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 18: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

RelaxNG

18

Speacutecifications httpwwwoasis-openorgcommitteesrelax-ngspechtml

1 Relax NG Syntaxe XML

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 5 ltelementgt6 ltstartgt7 ltgrammargt

1 ltelement name=gt2 ltelement name=gt3 4 ltelementgt5 ltelementgt

1 ltelement name=gt2 ltattribute name=gt3 4 ltelementgt

1 ltelement name=gt2 lttextgt3 ltelementgt

1 ltelement name=gt

RelaxNGIII

Syntaxe Syntaxe geacuteneacuterale

Syntaxe Eacuteleacutements

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltelementgt ltstartgtltgrammargt

ltelement name=gt ltelement name=gt ltelementgtltelementgt

ltelement name=gt ltattribute name=gt ltelementgt

ltelement name=gt lttextgtltelementgt

ltelement name=gt

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 19: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Patterns nommeacutes

19

2 ltzeroOrMoregt3 ltelement name=gt4 ltzeroOrMoregt5 ltoneOrmoregt6 ltelement name=gt7 ltoneOrMoregt8

1 ltelement name=gt2 ltoptionalgt3 ltelement name=gt4 ltoptionalgt5

1 ltelement name=gt2 ltchoicegt3 ltelement name=gt4 ltelement name=gt5 ltelement name=gt6 ltchoicegt

1 ltelement name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

1 ltattribute name=gt2 ltchoicegt3 ltvaluegtltvaluegt4 ltvaluegtltvaluegt5 ltvaluegtltvaluegt6 ltchoicegt

httpwwwoasis-openorgcommitteesrelax-ngtutorialhtml

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

2 Patterns nommeacutes

1 ltdefine name=gt2

Syntaxe Optionaliteacute

Syntaxe Alternative

Syntaxe Eacutenumeacuteration

Compleacutement

Syntaxe Deacuteclaration de pattern

ltzeroOrMoregt ltelement name=gt ltzeroOrMoregt ltoneOrmoregt ltelement name=gt ltoneOrMoregt

ltelement name=gt ltoptionalgt ltelement name=gt ltoptionalgt

ltelement name=gt ltchoicegt ltelement name=gt ltelement name=gt ltelement name=gt ltchoicegt

ltelement name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltattribute name=gt ltchoicegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltvaluegtltvaluegt ltchoicegt

ltdefine name=gt

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 20: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Ensembles non ordonneacutes

20

3 ltdefinegt

1 ltref name=gt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=gt4 ltref name=gt5 ltelementgt6 ltstartgt7 ltdefine name=gt8 9 ltdefine name=gt

10 11 ltgrammargt

Dans lexemple ci-apregraves il est neacutecessaire de deacuteclarer leacuteleacutement dans le pattern paragraphe

Paragraphe

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=textegt4 ltzeroOrMoregt5 ltref name=Paragraphegt6 ltzeroOrMoregt7 ltelementgt8 ltstartgt9 ltdefine name=Paragraphegt

10 ltelement name=paragraphegt11 lttextgt12 ltelementgt13 ltdefinegt14 ltgrammargt

On adoptera la convention minimale suivante si tous les eacuteleacutements du langage XML commencent par une majuscule les patterns commenceront par une majuscule

Si certains eacuteleacutements commencent par une majuscule ou si lon souhaite limiter les risques de confusion on pourra adopter une convention plus explicite comme preacutefixer les patterns par par p_

exemple

Syntaxe Appel de pattern

Syntaxe Syntaxe geacuteneacuterale avec pattern nommeacutes

Attention Un pattern nimplique pas un eacuteleacutement

Conseil Convention

ltdefinegt

ltref name=gt

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=gt ltref name=gt ltelementgt ltstartgt ltdefine name=gt ltdefine name=gtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=textegt ltzeroOrMoregt ltref name=Paragraphegt ltzeroOrMoregt ltelementgtltstartgtltdefine name=Paragraphegt ltelement name=paragraphegt lttextgt ltelementgtltdefinegtltgrammargt

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 21: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Contenu mixte

21

--

3 Ensembles non ordonneacutes

Le pattern permet de deacutefinir des ensembles non ordonneacutesinterleave

1 ltelement name=gt2 ltinterleavegt3 ltelement name=gtltelementgt4 ltelement name=gtltelementgt5 6 ltinterleavegt7 ltelementgt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 ltelement name=agtlttextgtltelementgt7 ltelement name=bgtlttextgtltelementgt8 ltinterleavegt9 ltelementgt

10 ltstartgt11 ltgrammargt

Autorise

ltparagraphgtltbgtltagtltparagraphgt

ltparagraphgtltagtltbgtltparagraphgt

httprelaxngorgtutorial-20011203htmlIDAN1YR

4 Contenu mixte

Contenu mixte (mixed content) (cf p13)

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltzeroOrMoregt

Deacutefinition Intercalation

Syntaxe

Exemple

Compleacutement

Rappel

Syntaxe

ltelement name=gt ltinterleavegt ltelement name=gtltelementgt ltelement name=gtltelementgt ltinterleavegtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt ltelement name=agtlttextgtltelementgt ltelement name=bgtlttextgtltelementgt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=mixedElementgt ltzeroOrMoregt

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 22: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Contenu mixte

22

5 ltchoicegt6 lttextgt7 ltelement name=inlineElementgtltelementgt8 9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=paragraphgt4 ltzeroOrMoregt5 ltchoicegt6 lttextgt7 ltelement name=emphasisgtlttextgtltelementgt8 ltelement name=foreigngtlttextgtltelementgt9 ltchoicegt

10 ltzeroOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mixedElementgt4 ltinterleavegt5 lttextgt6 ltzeroOrMoregt7 ltelement name=inlineElementgtltelementgt8 ltzeroOrMoregt9 ltzeroOrMoregt

10 11 ltzeroOrMoregt12 13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=paragraphgt5 ltinterleavegt6 lttextgt7 ltzeroOrMoregt8 ltelement name=emphasisgtlttextgtltelementgt9 ltzeroOrMoregt

Exemple

Syntaxe Mixed content avec interleave

Exemple Mixed content avec interleave

ltchoicegt lttextgt ltelement name=inlineElementgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=paragraphgt ltzeroOrMoregt ltchoicegt lttextgt ltelement name=emphasisgtlttextgtltelementgt ltelement name=foreigngtlttextgtltelementgt ltchoicegt ltzeroOrMoregt ltelementgtltstartgtltgrammargt

ltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=mixedElementgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=inlineElementgtltelementgt ltzeroOrMoregt ltzeroOrMoregt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgtltelement name=paragraphgt ltinterleavegt lttextgt ltzeroOrMoregt ltelement name=emphasisgtlttextgtltelementgt ltzeroOrMoregt

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 23: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Namespace cible

23

10 ltzeroOrMoregt11 ltelement name=foreigngtlttextgtltelementgt12 ltzeroOrMoregt13 ltinterleavegt14 ltelementgt15 ltstartgt16 ltgrammargt

5 Namespace cible

1 ltgrammar ns=gt

1 ltelement name= ns=gt

6 Inclusion de scheacutemas

1 ltinclude href=fichierrnggt

1 include fichierrnc

1 ltinclude href=fichierrnggt2 ltdefine name=ReDefinegt3 4 ltdefinegt5 6 ltincludegt7 lt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

1 include fichierrnc 2 3

1 ltinclude href=fichierrnggt2 ltstartgt3 ltref name=NewStartElementgt4 ltstartgt5 ltincludegt

Syntaxe Namespace cible (unique pour tout le scheacutema)

Syntaxe Namespace cible (pour un eacuteleacutement particulier)

Syntaxe Inclusion simple

Syntaxe Inclusion simple (compacte)

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes

Syntaxe Inclusion avec redeacutefinition de patterns nommeacutes (compacte)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine

ltzeroOrMoregt ltelement name=foreigngtlttextgtltelementgt ltzeroOrMoregt ltinterleavegtltelementgtltstartgtltgrammargt

ltgrammar ns=gt

ltelement name= ns=gt

ltinclude href=fichierrnggt

include fichierrnc

ltinclude href=fichierrnggt ltdefine name=ReDefinegt ltdefinegt ltincludegtlt-- ou ReDefine deacutesigne un eacuteleacutement deacutejagrave deacutefini dans fichierrng --gt

include fichierrnc

ltinclude href=fichierrnggt ltstartgt ltref name=NewStartElementgt ltstartgtltincludegt

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 24: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Types de donneacutees

24

--

--

---------

1 include fichierrnc 2 start = 3

7 Types de donneacutees

Ajouter lattribut datatypeLibrary=httpwwww3org2001XMLSchema-datatypes

agrave la racine grammar

1 ltgrammar 2 xmlns=httprelaxngorgnsstructure103 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 5 ltelement name=gt6 ltdata type=gt7 ltelementgt

stringbooleandecimalfloat doubledate dateTime duration time gYearMonth gYear gMonthDay gDay gMonthhexBinary base64BinaryanyURIQName NOTATIONTypes heacuteriteacutes des DTD ID IDREF IDREFS

httpwwww3orgTRxmlschema-2

Paramegravetre de speacutecialisation des types primitifs

Facettes

length longueur de la chaicircnepattern expression reacuteguliegravere permettant de valider la chaicircne par rapport au patron (deacutefinition en intention)enumeration liste de valeurs autoriseacutees (deacutefinition en extension)

Syntaxe Inclusion avec redeacutefinition de leacuteleacutement racine (compacte)

Syntaxe

Deacutefinition Types primitifs

Compleacutement Speacutecification des primitive datatypes

Facette

Exemple Type string

include fichierrnc start =

ltgrammar xmlns=httprelaxngorgnsstructure10 datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgtltelement name=gt ltdata type=gtltelementgt

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 25: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Relax NG Syntaxe Compacte

25

----

Deacuteriveacutes des types primitifs

Par exemple

deacuteriveacute de integer decimal

deacuteriveacute de normalizedString string

deacuteriveacute de language string

ID IDREF

1 ltgrammar xmlns=httprelaxngorgnsstructure10gt2 ltstartgt3 ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt4 ltdata type=stringgt5 ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt6 ltdatagt7 ltelementgt8 ltstartgt9 ltgrammargt

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = element age xsddecimal maxInclusive=100

httpwwwxmldvintcomdocsSchemaDataTypesQR-2pdf

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

8 Relax NG Syntaxe Compacte

Le code RelaxNG version compacte suivant permet de speacutecifier quun eacuteleacutement document contient des eacuteleacutements page qui contiennent du texte

1 element document element page text

Tutoriel

Deacutefinition Built-in datatypes

Exemple RelaxNG XML

Exemple RelaxNG compact

Compleacutement

Compleacutement

Exemple

Exemple Syntaxe compacte

ltgrammar xmlns=httprelaxngorgnsstructure10gt ltstartgt ltelement name=mail datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt ltdata type=stringgt ltparam name=patterngt([^ ])+([^ ])+([^ ])+ltparamgt ltdatagt ltelementgt ltstartgtltgrammargt

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element age xsddecimal maxInclusive=100

element document element page text

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 26: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Relax NG Syntaxe Compacte

26

1 element e1 element e2

1 element e2 attribute a1

1 element e1 text

1 element e1 element e2 element e3 +

1 element e1 element e2 attribut a1

1 element e1 element e2 | element e3

1 element setElement (element e2 | element e3 )

1 element paraTag (text | element inlineTag text)

1 attribute a1 v1 | v2

1 element e1 v1 | v2

1 Pattern1 = 2 3 element e1 Pattern1

1 start = element e1 2 Pattern1 =

Syntaxe Element

Syntaxe Attributs

Syntaxe Nœuds texte

Syntaxe Cardinaliteacute

Syntaxe Optionaliteacute

Syntaxe Alternative

Exemple Ensemble non ordonneacute (set)

Exemple Contenu mixte (mixed-content)

Syntaxe Eacutenumeacuteration

Syntaxe Pattern nommeacutes

Syntaxe Syntaxe geacuteneacuterale

element e1 element e2

element e2 attribute a1

element e1 text

element e1 element e2 element e3 +

element e1 element e2 attribut a1

element e1 element e2 | element e3

element setElement (element e2 | element e3 )

element paraTag (text | element inlineTag text)

attribute a1 v1 | v2

element e1 v1 | v2

Pattern1 = element e1 Pattern1

start = element e1 Pattern1 =

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 27: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Compleacutement Principes de conception de scheacutemas

27

-

-

3 Pattern2 =

Speacutecifier avant le datatypes xsd=httpwwww3org2001XMLSchema-datatypes

start

1 datatypes xsd=httpwwww3org2001XMLSchema-datatypes2 start = 3 element e1 xsddecimal maxInclusive=100

Guidelines for using W3C XML Schema Datatypes with RELAX NG httprelaxngorgxsdhtml

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 start =

9 Compleacutement Principes de conception de scheacutemas

Quelques exemple de principes deacutecriture dun scheacutema

Poupeacutees russes scheacutema arborescent dans lequel chaque eacuteleacutement est deacutefini localement agrave son pegravereelement e1 element e2

NB Suit la structure des instances de pas de reacuteutilisation patternTranches de salami scheacutema reacuteseau dans lequel chaque eacuteleacutement est deacutefini globalementelement e1 E2 E2=

NB de pas de redeacutefinition pattern

(Brillant0789-92)

10 Pour aller plus loin

httpxmlfrorgoasiscommitteesrelax-ngtutorial-20011203-frhtml

httpbooksxmlschemataorgrelaxng

Eric van der Vlist(2003) Relax NG OReilly

Syntaxe Types de donneacutees

Syntaxe Namespace

Traduction de la speacutecification

Livre en ligne

Pattern2 =

datatypes xsd=httpwwww3org2001XMLSchema-datatypesstart = element e1 xsddecimal maxInclusive=100

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemastart =

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 28: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemples

28

1 Exemple Carnet dadresse (XML DTD Relax NG)

1 ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgt2 ltaddressBookgt3   ltcardgt4     ltnamegtJohn Smithltnamegt5     ltemailgtjsexamplecomltemailgt6   ltcardgt7   ltcardgt8     ltnamegtFred Bloggsltnamegt9     ltemailgtfbexamplenetltemailgt

10   ltcardgt11 ltaddressBookgt

1 ltELEMENT addressBook (card)gt2 ltELEMENT card (name email)gt3 ltELEMENT name (PCDATA)gt4 ltELEMENT email (PCDATA)gt

1 ltxml version=10 encoding=UTF-8gt2 ltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt3   ltoneOrMoregt4     ltelement name=cardgt5       ltelement name=namegtlttextgtltelementgt6       ltelement name=emailgtlttextgtltelementgt7     ltelementgt8   ltoneOrMoregt9 ltelementgt

1 element addressBook 2   element card 3     element name text 4     element email text 5   +6

ExemplesIV

Exemple Instance XML

Exemple DTD

Exemple RelaxNG (version 1 sans pattern XML)

Exemple RelaxNG (version 1 sans pattern compacte)

ltxml version=10 encoding=UTF-8gtltoxygen RNGSchema=adresse1rnc type=compactgtltaddressBookgt  ltcardgt    ltnamegtJohn Smithltnamegt    ltemailgtjsexamplecomltemailgt  ltcardgt  ltcardgt    ltnamegtFred Bloggsltnamegt    ltemailgtfbexamplenetltemailgt  ltcardgtltaddressBookgt

ltELEMENT addressBook (card)gtltELEMENT card (name email)gtltELEMENT name (PCDATA)gtltELEMENT email (PCDATA)gt

ltxml version=10 encoding=UTF-8gtltelement name=addressBook xmlns=httprelaxngorgnsstructure10gt  ltoneOrMoregt    ltelement name=cardgt      ltelement name=namegtlttextgtltelementgt      ltelement name=emailgtlttextgtltelementgt    ltelementgt  ltoneOrMoregtltelementgt

element addressBook   element card     element name text     element email text   +

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 29: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemple Carnet dadresse (XML DTD Relax NG)

29

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3   ltstartgt4     ltelement name=addressBookgt5       ltzeroOrMoregt6         ltelement name=cardgtltref name=cardContentgtltelementgt7       ltzeroOrMoregt8     ltelementgt9   ltstartgt

10   ltdefine name=cardContentgt11     ltelement name=namegtlttextgtltelementgt12     ltelement name=emailgtlttextgtltelementgt13   ltdefinegt14 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 start = AddressBook3 AddressBook = element addressBook Card 4 Card = element card Name Email 5 Name = element name text 6 Email = element email text

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar3   xmlns=httprelaxngorgnsstructure104   datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt5   ltstartgt6     ltelement name=addressBookgt7       ltzeroOrMoregt8         ltelement name=cardgtltref name=cardContentgtltelementgt9       ltzeroOrMoregt

10     ltelementgt11   ltstartgt12   ltdefine name=cardContentgt13     ltelement name=namegtltdata type=stringgtltelementgt14     ltelement name=emailgtltdata type=anyURIgtltelementgt15   ltdefinegt16 ltgrammargt

1 namespace rng = httprelaxngorgnsstructure102 datatypes xsd = httpwwww3org2001XMLSchema-datatypes3 start = AddressBook4 AddressBook = element addressBook Card 5 Card = element card Name Email 6 Name = element name xsdstring 7 Email = element email text

Exemple RelaxNG (version 2 avec pattern XML)

Exemple RelaxNG (version 2 avec pattern compacte)

Exemple RelaxNG (version 3 avec datatype XML)

Exemple RelaxNG (version 3 avec datatype compacte)

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtlttextgtltelementgt    ltelement name=emailgtlttextgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10start = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name text Email = element email text

ltxml version=10 encoding=UTF-8gtltgrammar  xmlns=httprelaxngorgnsstructure10  datatypeLibrary=httpwwww3org2001XMLSchema-datatypesgt  ltstartgt    ltelement name=addressBookgt      ltzeroOrMoregt        ltelement name=cardgtltref name=cardContentgtltelementgt      ltzeroOrMoregt    ltelementgt  ltstartgt  ltdefine name=cardContentgt    ltelement name=namegtltdata type=stringgtltelementgt    ltelement name=emailgtltdata type=anyURIgtltelementgt  ltdefinegtltgrammargt

namespace rng = httprelaxngorgnsstructure10datatypes xsd = httpwwww3org2001XMLSchema-datatypesstart = AddressBookAddressBook = element addressBook Card Card = element card Name Email Name = element name xsdstring Email = element email text

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 30: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

30

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD RelaxNG XSLT]

2 Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

1 ltxml version=10 encoding=UTF-8gt2 ltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt3  ltobs num=PY54476VZ32gt4    ltlocgtParis-Montsourisltlocgt5    ltdategt1998-10-22T153105ltdategt6    lttemp unit=celsiusgt123lttempgt7    lthygrogt88lthygrogt8    ltnebulogt8ltnebulogt9    ltanemogt3ltanemogt

10    ltpluviogt6ltpluviogt11  ltobsgt12  ltobs num=BM655S55gt13    ltlocgtPic-du-midi-bigorreltlocgt14    ltdategt1998-10-22T153310ltdategt15    lttemp unit=celsiusgt31lttempgt16    lthygrogt55lthygrogt17    ltnebulogt1ltnebulogt18    ltanemogt48ltanemogt19    ltpluviogt0ltpluviogt20    ltmessagegt Aneacutemomegravetre primaire HSltmessagegt21  ltobsgt22 ltmeteogt

1 ltELEMENT meteo (obs)+gt2 ltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagt3 ltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gt4 ltATTLIST obs num ID REQUIREDgt5 ltELEMENT loc (PCDATA)gt6 ltELEMENT date (PCDATA)gt7 ltELEMENT temp (PCDATA)gt8 ltATTLIST temp unit (celsius | farenheight | kelvin) celsius gt9 ltELEMENT hygro (PCDATA)gt

10 ltELEMENT nebulo (PCDATA)gt11 ltELEMENT anemo (PCDATA)gt12 ltELEMENT pluvio (PCDATA)gt13 ltELEMENT message (PCDATA)gt

1 namespace rng = httprelaxngorgnsstructure102 default namespace = httpfoobarorgxml-schemasmtoSchema3 datatypes xsd = httpwwww3org2001XMLSchema-datatypes4 start= Meteo

Compleacutement

Exemple Instance XML

Exemple DTD (sans typage des donneacutees)

Exemple RelaxNG compacte (avec typage grossier des donneacutees)

ltxml version=10 encoding=UTF-8gtltmeteo xmlns=httpfoobarorgxml-schemasmtoSchemagt ltobs num=PY54476VZ32gt   ltlocgtParis-Montsourisltlocgt   ltdategt1998-10-22T153105ltdategt   lttemp unit=celsiusgt123lttempgt   lthygrogt88lthygrogt   ltnebulogt8ltnebulogt   ltanemogt3ltanemogt   ltpluviogt6ltpluviogt ltobsgt ltobs num=BM655S55gt   ltlocgtPic-du-midi-bigorreltlocgt   ltdategt1998-10-22T153310ltdategt   lttemp unit=celsiusgt31lttempgt   lthygrogt55lthygrogt   ltnebulogt1ltnebulogt   ltanemogt48ltanemogt   ltpluviogt0ltpluviogt   ltmessagegt Aneacutemomegravetre primaire HSltmessagegt ltobsgtltmeteogt

ltELEMENT meteo (obs)+gtltATTLIST meteo xmlns CDATA FIXED httpfoobarorgxml-schemasmtoSchemagtltELEMENT obs (loc date temp hygro nebulo anemo pluvio message) gtltATTLIST obs num ID REQUIREDgtltELEMENT loc (PCDATA)gtltELEMENT date (PCDATA)gtltELEMENT temp (PCDATA)gtltATTLIST temp unit (celsius | farenheight | kelvin) celsius gtltELEMENT hygro (PCDATA)gtltELEMENT nebulo (PCDATA)gtltELEMENT anemo (PCDATA)gtltELEMENT pluvio (PCDATA)gtltELEMENT message (PCDATA)gt

namespace rng = httprelaxngorgnsstructure10default namespace = httpfoobarorgxml-schemasmtoSchemadatatypes xsd = httpwwww3org2001XMLSchema-datatypesstart= Meteo

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 31: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

31

5 Meteo = element meteo Obs+6 Obs = element obs 7   element loc text8   element date xsddateTime9   element temp TempType

10   element hygro Pourcent 11   element nebulo xsddecimal12   element anemo xsddecimal13   element pluvio xsddecimal14   element message text15   attribute num xsdID16 17 TempType = xsddecimal attribute unit text18 Pourcent = xsdnonNegativeInteger maxInclusive = 100

1 ltxml version=10 encoding=ISO-8859-1 gt2 ltxsschema3   targetNamespace=httpfoobarorgxml-schemasmtoSchema4   xmlns=httpfoobarorgxml-schemasmtoSchema5   xmlnsmt=httpfoobarorgxml-schemasmtoSchema6   xmlnsxs=httpwwww3org2001XMLSchema7   elementFormDefault=qualified attributeFormDefault=unqualifiedgt8   ltxselement name=meteo type=mtmeteoTypegt9   ltxscomplexType name=meteoTypegt

10     ltxssequencegt11      ltxselement name=obs type=mtobservation maxOccurs=unboundedgt12     ltxssequencegt13   ltxscomplexTypegt14   ltxscomplexType name=observationgt15     ltxssequencegt16      ltxselement name=loc type=xsstringgt17      ltxselement name=date type=xsdateTimegt18      ltxselement name=temp type=mttempType minOccurs=0gt19      ltxselement name=hygro type=mtpourcent minOccurs=0gt20      ltxselement name=nebulo type=mtoctal minOccurs=0gt21      ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt22      ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt23      ltxselement name=message type=xsstring minOccurs=0gt24     ltxssequencegt25     ltxsattribute name=num type=xsID use=requiredgt26   ltxscomplexTypegt27   ltxssimpleType name=octalgt28     ltxsrestriction base=xsnonNegativeIntegergt29      ltxsmaxInclusive value=8gt30     ltxsrestrictiongt31   ltxssimpleTypegt32   ltxssimpleType name=pourcentgt33     ltxsrestriction base=xsnonNegativeIntegergt34      ltxsmaxInclusive value=100gt35     ltxsrestrictiongt36   ltxssimpleTypegt37   ltxssimpleType name=decimalTgt38     ltxsrestriction base=xsdecimalgt39      ltxsminInclusive value=-500gt40      ltxsmaxInclusive value=+500gt

Exemple W3C XML Schema (avec typage fin des donneacutees)

Meteo = element meteo Obs+Obs = element obs   element loc text  element date xsddateTime  element temp TempType  element hygro Pourcent   element nebulo xsddecimal  element anemo xsddecimal  element pluvio xsddecimal  element message text  attribute num xsdIDTempType = xsddecimal attribute unit textPourcent = xsdnonNegativeInteger maxInclusive = 100

ltxml version=10 encoding=ISO-8859-1 gtltxsschema  targetNamespace=httpfoobarorgxml-schemasmtoSchema  xmlns=httpfoobarorgxml-schemasmtoSchema  xmlnsmt=httpfoobarorgxml-schemasmtoSchema  xmlnsxs=httpwwww3org2001XMLSchema  elementFormDefault=qualified attributeFormDefault=unqualifiedgt  ltxselement name=meteo type=mtmeteoTypegt  ltxscomplexType name=meteoTypegt    ltxssequencegt     ltxselement name=obs type=mtobservation maxOccurs=unboundedgt    ltxssequencegt  ltxscomplexTypegt  ltxscomplexType name=observationgt    ltxssequencegt     ltxselement name=loc type=xsstringgt     ltxselement name=date type=xsdateTimegt     ltxselement name=temp type=mttempType minOccurs=0gt     ltxselement name=hygro type=mtpourcent minOccurs=0gt     ltxselement name=nebulo type=mtoctal minOccurs=0gt     ltxselement name=anemo type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=pluvio type=xsnonNegativeInteger minOccurs=0gt     ltxselement name=message type=xsstring minOccurs=0gt    ltxssequencegt    ltxsattribute name=num type=xsID use=requiredgt  ltxscomplexTypegt  ltxssimpleType name=octalgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=8gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=pourcentgt    ltxsrestriction base=xsnonNegativeIntegergt     ltxsmaxInclusive value=100gt    ltxsrestrictiongt  ltxssimpleTypegt  ltxssimpleType name=decimalTgt    ltxsrestriction base=xsdecimalgt     ltxsminInclusive value=-500gt     ltxsmaxInclusive value=+500gt

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 32: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)

32

41     ltxsrestrictiongt42   ltxssimpleTypegt43   ltxscomplexType name=tempTypegt44     ltxssimpleContentgt45      ltxsextension base=mtdecimalTgt46       ltxsattribute name=unit type=mttempUnitgt47      ltxsextensiongt48     ltxssimpleContentgt49   ltxscomplexTypegt50   ltxssimpleType name=tempUnitgt51    ltxsrestriction base=xsstringgt52     ltxsenumeration value=celsiusgt53     ltxsenumeration value=kelvingt54     ltxsenumeration value=farenheightgt55    ltxsrestrictiongt56   ltxssimpleTypegt57 ltxsschemagt

W3C XML Schema visualiseacute graphiquement dans leacutediteur Oxygen

Sources en teacuteleacutechargement sur le site

[cf Exemples XML DTD W3C Schema RelaxNG]

Compleacutement

    ltxsrestrictiongt  ltxssimpleTypegt  ltxscomplexType name=tempTypegt    ltxssimpleContentgt     ltxsextension base=mtdecimalTgt      ltxsattribute name=unit type=mttempUnitgt     ltxsextensiongt    ltxssimpleContentgt  ltxscomplexTypegt  ltxssimpleType name=tempUnitgt   ltxsrestriction base=xsstringgt    ltxsenumeration value=celsiusgt    ltxsenumeration value=kelvingt    ltxsenumeration value=farenheightgt   ltxsrestrictiongt  ltxssimpleTypegtltxsschemagt

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 33: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercices

33

1 Exercices DTD

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

11 Exercice Une DTDSoit la DTD suivante

1 ( + )gt2 ( )gt3 ( )gt4 ( )gt5 ( )gt6 ( +)gt7 ( )gt

Question 1

Question 2

Question 3

Question 4

ExercicesV

Produire un document XML valide par rapport agrave cette DTD[ ]solution ndeg1 [ ] p46

Le document suivant est-il valide par rapport agrave la DTD

1 234    Document de test5    2 deacutecembre 20096    Steacutephane Crozat7    Document DTD XML Valide8

[ ]solution ndeg2 [ ] p46

Produire le plus petit document XML valide par rapport agrave cette DTD[ ]solution ndeg3 [ ] p46

Produire un document XML utilisant toutes les balises de la DTD[ ]solution ndeg4 [ ] p46

( + )gtltELEMENT entete titre date auteur motscles resume ( )gtltELEMENT titre PCDATA ( )gtltELEMENT date PCDATA ( )gtltELEMENT auteur PCDATA ( )gtltELEMENT motscles PCDATA ( +)gtltELEMENT resume paragraphe ( )gtltELEMENT paragraphe PCDATA

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Document de testlttitregt lttitregt   2 deacutecembre 2009ltdategt ltdategt   Steacutephane Crozatltauteurgt ltauteurgt   Document DTD XML Valideltmotsclesgt ltmotsclesgtltentetegt

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 34: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice Utiliser des DTD avec Oxygen

34

--

12 Exercice

13 Exercice Utiliser des DTD avec OxygenLobjectif de cet exercice est de sapproprier lenvironnement Oxygen pour manipuler des DTD

Installation Oxygen httpstphcrztfrdoc021outwwwcooxyAC01htmlTutoriel Oxygen pour les scheacutemas Scheacutemas XML (cf p)

Question 1

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

sousTitre resume titre auteur abstract version motsCles ressource

Eacuteleacutements correctement speacutecifieacutes Eacuteleacutements incorrectement speacutecifieacutes

[ ]solution ndeg5 [ ] p47

-

Creacuteer une DTD doc

doc -gt p+

[ ]solution ndeg6 [ ] p48

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 35: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

35

Question 2

Question 3

14 Exercice Pour cet exercice on utilisera un eacutediteur XML tel que Oxygen

Soit la DTD suivante

1 ltELEMENT document (entetecorps)gt23 ltELEMENT entete (identification motscles resume)gt4 ltELEMENT identification (titre date auteur version)gt5 ltELEMENT date (PCDATA)gt6 ltELEMENT auteur (PCDATA)gt7 ltELEMENT titre (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT motscles (motitem+)gt

10 ltELEMENT motitem (PCDATA)gt11 ltELEMENT resume (paragraphe+)gt1213 ltELEMENT corps (introduction (div+ | contenu) conclusion)gt14 ltELEMENT div (titre introduction (div+ | contenu) conclusion)gt15 ltELEMENT introduction (paragraphe+)gt16 ltELEMENT conclusion (paragraphe+)gt17 ltELEMENT contenu (paragraphe)+gt1819 ltELEMENT paragraphe (PCDATA | important | etranger | note)gt2021 ltELEMENT important (PCDATA)gt22 ltELEMENT note (PCDATA)gt23 ltELEMENT etranger (PCDATA)gt24 ltATTLIST etranger25 langue CDATA IMPLIED26 gt

Question 1

Question 2

- p -gt PCDATA

--

Creacuteer un fichier XML

Veacuterifier quil est bien formeacuteFaire un test de fichier mal formeacute

[ ]solution ndeg7 [ ] p48

---

Ajouter une reacutefeacuterence agrave la DTD doc

Valider le fichierFaire un test de fichier non valide en modifiant le fichier XMLFaire un test de fichier non valide en modifiant la DTD

[ ]solution ndeg8 [ ] p48

Produire un document XML valide par rapport agrave cette DTD

ltELEMENT document (entetecorps)gt

ltELEMENT entete (identification motscles resume)gtltELEMENT identification (titre date auteur version)gtltELEMENT date (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT titre (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT motscles (motitem+)gtltELEMENT motitem (PCDATA)gtltELEMENT resume (paragraphe+)gt

ltELEMENT corps (introduction (div+ | contenu) conclusion)gtltELEMENT div (titre introduction (div+ | contenu) conclusion)gtltELEMENT introduction (paragraphe+)gtltELEMENT conclusion (paragraphe+)gtltELEMENT contenu (paragraphe)+gt

ltELEMENT paragraphe (PCDATA | important | etranger | note)gt

ltELEMENT important (PCDATA)gtltELEMENT note (PCDATA)gtltELEMENT etranger (PCDATA)gtltATTLIST etranger langue CDATA IMPLIEDgt

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 36: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

36

Question 3

Soit le document XML suivant

1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocumentgt4  ltentetegt5   ltidentificationgt6    lttitregtTextlttitregt7    ltdategtTextltdategt8    ltauteurgtTextltauteurgt9    ltversiongtTextltversiongt

10   ltidentificationgt11   ltmotsclesgt12    ltmotitemgtTextltmotitemgt13    ltmotitemgtTextltmotitemgt14    ltmotitemgtTextltmotitemgt15   ltmotsclesgt16  ltentetegt17  ltcorpsgt18   ltintroductiongt19    ltparagraphegtTextltparagraphegt20    ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt21   ltintroductiongt22   ltdivgt23    lttitregtTextlttitregt24    ltintroductiongt25     ltparagraphegtTextltparagraphegt26    ltintroductiongt27    ltcontenugt28     ltparagraphegtTextltparagraphegt29    ltcontenugt30    ltconclusiongt31     ltparagraphegtltnotegtTextltnotegtltparagraphegt32    ltconclusiongt33   ltdivgt34   ltdivgt35    lttitregtTextlttitregt36    ltdivgt37     lttitregtlttitregt38     ltcontenugt39      ltparagraphegtTextltparagraphegt40     ltcontenugt41    ltdivgt42    ltconclusiongt43     ltparagraphegtTextltparagraphegt44    ltconclusiongt45   ltdivgt46   ltconclusiongt47    ltparagraphegtTextltparagraphegt48   ltconclusiongt

Produire le plus petit document XML valide par rapport agrave cette DTD

Produire un document XML utilisant toutes les balises de la DTD

ltxml version=10 encoding=iso-8859-1gtltDOCTYPE document SYSTEM documentdtdgtltdocumentgt ltentetegt  ltidentificationgt   lttitregtTextlttitregt   ltdategtTextltdategt   ltauteurgtTextltauteurgt   ltversiongtTextltversiongt  ltidentificationgt  ltmotsclesgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt   ltmotitemgtTextltmotitemgt  ltmotsclesgt ltentetegt ltcorpsgt  ltintroductiongt   ltparagraphegtTextltparagraphegt   ltparagraphegtText ltimportantgtTextltimportantgtTextltparagraphegt  ltintroductiongt  ltdivgt   lttitregtTextlttitregt   ltintroductiongt    ltparagraphegtTextltparagraphegt   ltintroductiongt   ltcontenugt    ltparagraphegtTextltparagraphegt   ltcontenugt   ltconclusiongt    ltparagraphegtltnotegtTextltnotegtltparagraphegt   ltconclusiongt  ltdivgt  ltdivgt   lttitregtTextlttitregt   ltdivgt    lttitregtlttitregt    ltcontenugt     ltparagraphegtTextltparagraphegt    ltcontenugt   ltdivgt   ltconclusiongt    ltparagraphegtTextltparagraphegt   ltconclusiongt  ltdivgt  ltconclusiongt   ltparagraphegtTextltparagraphegt  ltconclusiongt

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 37: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Quiz DTD

37

49  ltcorpsgt50 ltdocumentgt

Question 4

Ce document est-il valide par rapport agrave la DTD

 ltcorpsgtltdocumentgt

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 38: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Preacuteambule

38

2 Quiz DTD21 Preacuteambule

Soit les fichiers XML et DTD suivants

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltexemplegtSMIL est un langage XMLltexemplegt6 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt5 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltcoursgt5 ltcoursgt6 ltexemplegtXHTML est un langage XMLltexemplegt7 ltcoursgt

1 ltxml version=10 encoding=UTF-8gt2 ltcoursgt3 ltdefinitiongtXML est un meacuteta-langageltdefinitiongt4 ltexemplegtXHTML est un langage XMLltexemplegt5 ltremarquegtXML est heacuteriteacute de SGMLltremarquegt6 ltcoursgt

1 ltELEMENT cours (definition exemple)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT exemple (PCDATA) gt

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltexemplegtSMIL est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltcoursgtltcoursgtltexemplegtXHTML est un langage XMLltexemplegtltcoursgt

ltxml version=10 encoding=UTF-8gtltcoursgtltdefinitiongtXML est un meacuteta-langageltdefinitiongtltexemplegtXHTML est un langage XMLltexemplegtltremarquegtXML est heacuteriteacute de SGMLltremarquegtltcoursgt

ltELEMENT cours (definition exemple)gtltELEMENT definition (PCDATA) gtltELEMENT exemple (PCDATA) gt

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 39: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice Fichiers bien formeacutes

39

1 ltELEMENT cours (definition remarque)gt2 ltELEMENT definition (PCDATA) gt3 ltELEMENT remarque (PCDATA) gt

22 Exercice Fichiers bien formeacutes

23 Exercice Fichiers valides

24 Exercice Scheacutema inteacutegrateur

3 Exercices RelaxNG

schCours2dtd

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

cours3xml

cours4xml

schCours1dtd

schCours2dtd

[ ]solution ndeg9 [ ] p48

Quels sont les fichiers XML valides par rapport agrave quelles DTD

cours4xml cours3xml cours1xml cours2xml

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

Nest pas valide

[ ]solution ndeg10 [ ] p49

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gt

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

[ ]solution ndeg11 [ ] p49

ltELEMENT cours (definition remarque)gtltELEMENT definition (PCDATA) gtltELEMENT remarque (PCDATA) gt

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 40: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

40

Rappel Manipulation des dans OxygenScheacutemas XML (cf p)

31 Exercice Soit le scheacutema S1 ci-apregraves

1 2 3 =4 =5 6 =7 8 =9 =

10 11 =12 =13 14 15 16 17 18 =19 =20 21 =22 23 =24 =25 =26 27 28 29 30 313233 =34 =35 36 =37 3839 =40 41 =42 4344

Question 1

Question 2

Produisez le plus petit document XML valide possible[ ]solution ndeg12 [ ] p49

[ ]solution ndeg13 [ ] p50

ltxml version=10 encoding=UTF-8gt ltgrammar

=xmlns httprelaxngorgnsstructure10 =ns httputcfrnf29S1gt ltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name authorgt =ltelement name emailgtlttextgtltelementgt ltelementgt ltoptionalgt ltelementgt ltoptionalgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt ltchoicegt =ltref name Textgtltrefgt ltoneOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltchoicegt ltelementgt ltoneOrMoregtltelementgtltstartgt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgt ltoptionalgt =ltelement name subtitlegtlttextgtltelementgt ltoptionalgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 41: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

41

32 Exercice Soit les 3 fichiers RelaxNG suivants

12 =3 =4 =56 =7 8 =9

1011

12 3 =45 =6 7 =8 =9 =

10 11 12 1314 =15

12 3 =45 =6 7 =8 =9

10 11 12 =13 =14 =15 16 =17 =18 =19 20 21 22 2324

Produisez le plus petit document XML valide contenant tous les eacuteleacutements

lt-- db0rng --gt =ltgrammar xmlns httprelaxngorgnsstructure10gt

=ltdefine name Titlegt =ltelement name titlegtlttextgtltelementgtltdefinegt

=ltdefine name Textgt ltoneOrMoregt =ltelement name paragtlttextgtltelementgt ltoneOrMoregtltdefinegtltgrammargt

lt-- db1rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoneOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltoneOrMoregt ltelementgtltstartgt

=ltinclude href db0rnggtltincludegtltgrammargt

lt-- db2rng --gt ltxml version=10 encoding=UTF-8gt

=ltgrammar xmlns httprelaxngorgnsstructure10gtltstartgt =ltelement name bookgt ltoptionalgt =ltelement name infogt =ltelement name titlegtlttextgtltelementgt ltelementgt ltoptionalgt ltzeroOrMoregt =ltelement name partgt =ltref name Titlegt =ltref name Textgtltrefgt ltzeroOrMoregt =ltelement name chaptergt =ltref name Titlegt =ltref name Textgtltrefgt ltelementgt ltzeroOrMoregt ltelementgt ltzeroOrMoregtltelementgtltstartgt

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 42: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

42

25 =26

Question

33 Exercice Repreacutesenter la lettre officielle suivante en utilisant le formalisme XML

Une lettre

Question 1

Question 2

Proposer un fichier permettant de valider agrave la fois les fichiers valides par rapport agrave dbrng db1

et rng db2rng

[ ]solution ndeg14 [ ] p50

Repeacuterer la structure physique du document[ ]solution ndeg15 [ ] p50

[ ]solution ndeg16 [ ] p51

=ltinclude href db0rnggtltincludegtltgrammargt

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 43: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

43

Question 3

Deacuteduire une structure logique depuis la structure physique et eacutecrire le document XML correspondant

---

Eacutecrire le scheacutema RelaxNG des lettres respectant ce modegravele

Indice

Utiliser

Des par exemple patterns Texte = paragraphe+

Des par exemple pour la datedatatypeProposer votre propre namespace

[ ]solution ndeg17 [ ] p52

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 44: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice

44

34 ExerciceCompleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gt

lt gt

 ltelement name= gt

  lt gt

   ltref name=Bgt

  lt gt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

  lt gt

   ltref name= gt

  lt gt

 ltelementgt

[ ]solution ndeg18 [ ] p53

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 45: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Exercice Scheacutema CV

45

35 Exercice Scheacutema CVVous travaillez dans une agence dinteacuterim Votre mission est de mettre en place une chaicircne eacuteditoriale XML afin de geacuterer les CV de votre agence

Vous avez agrave votre disposition pour cela un exemple de CV

[cf CV exemple]Question 1

Question 2

Question 3

lt gt

lt name= gt

 ltelement name= gt

  ltelement name= gtlt gtltelementgt

  lt gt

   ltelement name= gtlt gtltelementgt

  lt gt

 ltelementgt

lt gt

ltgrammargt

Reacute-eacutecrivez ce CV en XML[ ]solution ndeg19 [ ] p55

Proposez un scheacutema XML

Expliquez en quoi lapproche suivie ici est en geacuteneacuteral insuffisante pour aboutir agrave un bon scheacutema (en notant que lon ne dispose que dun seul CV agrave analyser) Proposez des exemples dactions qui auraient permis de faire mieux

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 46: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

46Steacutephane Crozat

Exercice p 33gt Solution ndeg4

Exercice p 33gt Solution ndeg3

Exercice p 33gt Solution ndeg2

Exercice p 33gt Solution ndeg1

1 234    Mon document5    Aujourdhui6    Moi7

Oui

1 234   5   6   7

1 234    Mon document5    Aujourdhui6    Moi7    Document

Solutions des exercices

Exemple

Exemple

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt  lttitregt  ltdategt  ltauteurgtltentetegt

ltxml version=10gtltDOCTYPE entete SYSTEM entetedtdgtltentetegt   Mon documentlttitregt lttitregt   Aujourdhuiltdategt ltdategt   Moiltauteurgt ltauteurgt   Documentltmotsclesgt ltmotsclesgt

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 47: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

47Steacutephane Crozat

-

Exercice p 33gt Solution ndeg5

8   9      Mon reacutesumeacute

10   11

Le fichier nest pas valide par rapport agrave la DTD Seacutelectionnez les eacuteleacutements filexml schemadtd

causes de cette non-validiteacute

1 ltxml version=10gt2 lt--filexml--gt3 ltDOCTYPE papier SYSTEM schemadtdgt4 ltpapiergt5  lttitregtReacuteinterroger les structures documentaireslttitregt6  ltauteurgtSteacutephane Crozatltauteurgt7  ltauteurgtBruno Bachimontltauteurgt8  ltresumegtNous proposons dans cet article daborder ltresumegt9  ltabstractgtIn this paper we defineltabstractgt

10  ltmotsClesgt11   lttermegtIngeacutenierie des connaissanceslttermegt12   lttermegtDocumentlttermegt13  ltmotsClesgt14  ltversion num=1gt15  ltressource src=sic_00001016pdfgt16 ltpapiergt

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT motsCles (PCDATA)gt8 ltELEMENT version (PCDATA)gt9 ltELEMENT ressource EMPTYgt

Eacuteleacutements correctement speacutecifieacutes

titre

sousTitre

resume

Eacuteleacutements incorrectement speacutecifieacutes

auteur

abstract

motsCles

version

ressource

Les erreurs

Il manque la cardinaliteacute N sur auteur ( ou )auteur auteur+

  ltresumegt     Mon reacutesumeacuteltparagraphegt ltparagraphegt  ltresumegtltentetegt

ltxml version=10gtlt--filexml--gtltDOCTYPE papier SYSTEM schemadtdgtltpapiergt lttitregtReacuteinterroger les structures documentaireslttitregt ltauteurgtSteacutephane Crozatltauteurgt ltauteurgtBruno Bachimontltauteurgt ltresumegtNous proposons dans cet article daborder ltresumegt ltabstractgtIn this paper we defineltabstractgt ltmotsClesgt  lttermegtIngeacutenierie des connaissanceslttermegt  lttermegtDocumentlttermegt ltmotsClesgt ltversion num=1gt ltressource src=sic_00001016pdfgtltpapiergt

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT motsCles (PCDATA)gtltELEMENT version (PCDATA)gtltELEMENT ressource EMPTYgt

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 48: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

48Steacutephane Crozat

Exercice p 39gt Solution ndeg9

Exercice p 35gt Solution ndeg8

Exercice p 35gt Solution ndeg7

Exercice p 34gt Solution ndeg6

--- Il manque la deacuteclaration de dans et sa deacutefinitionabstract papier

nest pas du texte mais contient des eacuteleacutements qui doivent ecirctre deacutefinismotsCles terme

Il manque la deacutefinition des attributs de et version ressource

Ci-apregraves la DTD corrigeacutee

1 lt-- schemadtd--gt2 ltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gt3 ltELEMENT titre (PCDATA)gt4 ltELEMENT sousTitre (PCDATA)gt5 ltELEMENT auteur (PCDATA)gt6 ltELEMENT resume (PCDATA)gt7 ltELEMENT abstract (PCDATA)gt8 ltELEMENT motsCles (terme+)gt9 ltELEMENT terme (PCDATA)gt

10 ltELEMENT version (PCDATA)gt11 ltATTLIST version num CDATA IMPLIEDgt12 ltELEMENT ressource EMPTYgt13 ltATTLIST ressource src CDATA REQUIREDgt

1 ltELEMENT doc (p+)gt2 ltELEMENT p (PCDATA) gt

1 ltxml version=10 encoding=UTF-8gt2 ltdocgt3 ltpgtHello world ltpgt4 ltdocgt

1 ltxml version=10 encoding=UTF-8gt2 ltDOCTYPE doc SYSTEM docdtdgt3 ltdocgt4 ltpgtHello world ltpgt5 ltdocgt

Quels sont les fichiers bien formeacutes

cours1xml

cours2xml

lt-- schemadtd--gtltELEMENT papier (titre sousTitre auteur resume abstract motsCles (version | ressource))gtltELEMENT titre (PCDATA)gtltELEMENT sousTitre (PCDATA)gtltELEMENT auteur (PCDATA)gtltELEMENT resume (PCDATA)gtltELEMENT abstract (PCDATA)gtltELEMENT motsCles (terme+)gtltELEMENT terme (PCDATA)gtltELEMENT version (PCDATA)gtltATTLIST version num CDATA IMPLIEDgtltELEMENT ressource EMPTYgtltATTLIST ressource src CDATA REQUIREDgt

ltELEMENT doc (p+)gtltELEMENT p (PCDATA) gt

ltxml version=10 encoding=UTF-8gtltdocgtltpgtHello world ltpgtltdocgt

ltxml version=10 encoding=UTF-8gtltDOCTYPE doc SYSTEM docdtdgtltdocgtltpgtHello world ltpgtltdocgt

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 49: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

49Steacutephane Crozat

Exercice p 40gt Solution ndeg12

-

-

Exercice p 39gt Solution ndeg11

Exercice p 39gt Solution ndeg10

cours3xml

cours4xml

schCours1dtd

schCours2dtd

Les DTD ne sont pas des fichiers XML (il ny a pas de balise) ils ne sont donc pas bien formeacutes

Un fichier est bien formeacute sil respecte les regravegles syntaxiques geacuteneacuterales de XML sil possegravede un et uniqueeacuteleacutement racine si tous les eacuteleacutements quil contient sont totalement imbriqueacutes les uns dans les autres et(tout eacuteleacutement na quun seul pegravere les balises de se croisent pas)

Quels sont les fichiers XML valides par rapport agrave quelles DTD

Est valide par rapport agrave schCours1dtd

Est valide par rapport agrave schCours2dtd

cours2xml

Nest pas valide

cours1xml

cours3xml

cours4xml

Proposer un scheacutema tel que tous les fichiers bien formeacutes parmi schCours3dtd cours1xml cours2

et soient validesxml cours3xml cours4xml

ltELEMENT cours ( )gtdefinition exemple remarque

ltELEMENT definition (PCDATA) gt

ltELEMENT exemple (PCDATA) gt

ltELEMENT remarque (PCDATA) gt

nest pas concerneacute car il nest pas bien formeacute un fichier ne peut ecirctre valide sil nest cours3xml

pas bien formeacuteOn peut accepter ou ainsi que mecircme si ces definition definition remarque

cardinaliteacutes ne sont pas instancieacutees pas dans les fichiers XML citeacutes en exemple

1 ltxml version=10 encoding=UTF-8gt

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 50: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

50Steacutephane Crozat

Exercice p 42gt Solution ndeg14

Exercice p 40gt Solution ndeg13

2 =3 4 5 6 7

1 2 =3 4 5 6 7 8 9

10 11 12 13 14 15 16 17

db2rng permet de valider les fichiers donc db1rng dbrng=db2rng

=ltbook xmlns httputcfrnf29S1gt ltpartgt lttitlegt ltparagt ltpartgtltbookgt

ltxml version=10 encoding=UTF-8gt =ltbook xmlns httputcfrnf29S1gt

ltinfogt lttitlegt ltauthorgt ltemailgt ltauthorgt ltinfogt ltpartgt lttitlegt ltsubtitlegt ltchaptergt lttitlegt ltparagt ltchaptergt ltpartgtltbookgt

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 51: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

51Steacutephane Crozat

Exercice p 42gt Solution ndeg16

Exercice p 42gt Solution ndeg15

Structure physique de la lettre XML

1 23   4     5        Steacutephane6        Crozat7       8         9            UTC

10            60200 Compiegravegne11         12       13     14     15        Monsieur

Exemple

ltxml version=10gtltlettregt  ltentetegt    ltemetteurgt       Steacutephaneltprenomgt ltprenomgt       Crozatltnomgt ltnomgt      ltadressegt        lttextegt           UTCltparagraphegt ltparagraphegt           60200 Compiegravegneltparagraphegt ltparagraphegt        lttextegt      ltadressegt    ltemetteurgt    ltdestinatairegt       Monsieurlttitregt lttitregt

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 52: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

52Steacutephane Crozat

Exercice p 43gt Solution ndeg17

16        Dupont17     18      2001-03-0119      Compiegravegne20      Deacutemonstration XML21   22   23     24        XXXXXXXXXXX25        XXXXXXXXXXX26        XXXXXXXXXXX27     28   s29

La structure logique est tregraves eacuteloigneacutee de la mise en forme dans la page En particulier aucune information nest preacutesente sur la localisation dans la page des informations cest la structure dune lettre qui les prescrira agrave partir des descripteurs logiques

On note que certains eacuteleacutements sils sont calculables nont pas besoins decirctre speacutecifieacutes dans la structure logique comme ici la formule de politesse et la signature

1 23    =4    =5    =6   7      = 8        =9          =

10            =11         12          =13            =14         15          = =16          =17          =18       19        =20          =21       22     23   24    =25     26        =27     28     29        =

Remarque Quelques remarques

       Dupontltnomgt ltnomgt    ltdestinatairegt     2001-03-01ltdategt ltdategt     Compiegravegneltlieugt ltlieugt     Deacutemonstration XMLltobjetgt ltobjetgt  ltentetegt  ltcorpsgt    lttextegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt       XXXXXXXXXXXltparagraphegt ltparagraphegt    lttextegt  sltcorpsgtltlettregt

ltxml version=10 encoding=UTF-8gtltgrammar   =xmlns httprelaxngorgnsstructure10   =datatypeLibrary httpwwww3org2001XMLSchema-datatypes   =ns wwwutcfrnf29tdXmlgt  ltstartgt     = ltelement name lettregt       =ltelement name entetegt         =ltelement name emetteurgt           =ltref name personnegt        ltelementgt         =ltelement name destinatairegt           =ltref name personnegtltrefgt        ltelementgt         = =ltelement name dategtltdata type dategtltdatagtltelementgt         =ltelement name lieugtlttextgtltelementgt         =ltelement name objetgtlttextgtltelementgt      ltelementgt       =ltelement name corpsgt         =ltref name textegt      ltelementgt    ltelementgt  ltstartgt   =ltdefine name personnegt    ltoptionalgt       =ltelement name titregtlttextgtltelementgt    ltoptionalgt    ltzeroOrMoregt       = ltelement name prenom gtlttextgtltelementgt

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 53: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

53Steacutephane Crozat

Exercice p 44gt Solution ndeg18

30     31        =32     33      =34        =35     36     37   38    =39      =40       41          =42       43     44   45

[cf Scheacutema RelaxNG dune lettre]

Compleacuteter le scheacutema RelaxNG afin que les fichiers XML et schemarng file1xml file2xml

soient valides On cherchera le scheacutema possible On cherchera un scheacutema file3xml le plus restrictifsans description redondante en utilisant la syntaxe lorsque cest neacutecessairerefdefine

1 23 456

1 23 45678

1 23 456789

101112

ltxml version=10 encoding=UTF-8gt

lt xmlns=httprelaxngorgnsstructure10gtgrammar

    ltzeroOrMoregt       =ltelement name nomgtlttextgtltelementgt    ltoptionalgt     =ltelement name adressegt       =ltref name textegt    ltelementgt    ltoptionalgt  ltdefinegt   =ltdefine name textegt     =ltelement name textegt      ltoneOrMoregt         =ltelement name paragraphegtlttextgtltelementgt      ltoneOrMoregt    ltelementgt  ltdefinegtltgrammargt

ltxml version=10gtlt--file1xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file2xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltagt

ltxml version=10gtlt--file3xml--gt

ltoxygen RNGSchema=04rng type=xmlgtltagtltbgtltb1gtltbgtltbgtltb1gtltb2gtltbgtltbgtltb1gtltbgtltcgtltcgtltbgtltb1gtltbgtltbgtltb1gtltbgtltagt

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 54: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

54Steacutephane Crozat

lt gtstart

 ltelement name= gta

  lt gtoneOrMore

   ltref name=Bgt

  lt gtoneOrMore

  lt gtzeroOrMore

   ltelement name= gtlt gtltelementgtc empty

  lt gtzeroOrMore

  lt gtzeroOrMore

   ltref name= gtB

  lt gtzeroOrMore

 ltelementgt

lt gtstart

lt name= gtdefine B

 ltelement name= gtb

  ltelement name= gtlt gtltelementgtb1 empty

  lt gtoptional

   ltelement name= gtlt gtltelementgtb2 empty

  lt gtoptional

 ltelementgt

lt gtdefine

ltgrammargt

1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4  ltelement name=agt5   ltoneOrMoregt6    ltref name=Bgt7   ltoneOrMoregt8   ltzeroOrMoregt9    ltelement name=cgtltemptygtltelementgt

10   ltzeroOrMoregt11   ltzeroOrMoregt12    ltref name=Bgt13   ltzeroOrMoregt14  ltelementgt15 ltstartgt16 ltdefine name=Bgt17  ltelement name=bgt18   ltelement name=b1gtltemptygtltelementgt19   ltoptionalgt20    ltelement name=b2gtltemptygtltelementgt

ltxml version=10 encoding=UTF-8gtltgrammar xmlns=httprelaxngorgnsstructure10gtltstartgt ltelement name=agt  ltoneOrMoregt   ltref name=Bgt  ltoneOrMoregt  ltzeroOrMoregt   ltelement name=cgtltemptygtltelementgt  ltzeroOrMoregt  ltzeroOrMoregt   ltref name=Bgt  ltzeroOrMoregt ltelementgtltstartgtltdefine name=Bgt ltelement name=bgt  ltelement name=b1gtltemptygtltelementgt  ltoptionalgt   ltelement name=b2gtltemptygtltelementgt

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 55: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

55Steacutephane Crozat

Exercice p 45gt Solution ndeg19

21   ltoptionalgt22  ltelementgt23 ltdefinegt24 ltgrammargt

1 2 =3 4 Scotto5 Leacuteo6 180719857 Franccedilaise8 Ceacutelibataire9 B

10 leomonmailfr11 httpleomonsitepersofr12 13 Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute Upsilon14 15 16 200617 Baccalaureacuteat litteacuteraire18 19 20 200321 Brevet des collegraveges22 23 24 25 26 eacuteteacute27 200528 Relecteur chez Eyrolles29 Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du

logiciel de30 gestion de versions Subversion31 32 33 eacuteteacute34 200435 Stagiaire agrave lUTC36 Structuration documentaire utilisation de Scenari37 38 39 40 41 Tregraves bonne pratique du franccedilais eacutecrit42 43 44 Outils bureautiques45 Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobe46 Illustrator et Inkscape47

Exemple

  ltoptionalgt ltelementgtltdefinegtltgrammargt

ltxml version=10 encoding=UTF-8gt =ltcv xmlns utcfrnf29crozatstschemacvgt

ltentetegt Scottoltnomgt ltnomgt Leacuteoltprenomgt ltprenomgt 18071985ltddngt ltddngt Franccedilaiseltnationalitegt ltnationalitegt CeacutelibataireltsituationMaritalegt ltsituationMaritalegt Bltpermisgt ltpermisgt leomonmailfrltmailgt ltmailgt httpleomonsitepersofrltwebgt ltwebgt ltentetegt Eacutetudiant en premiegravere anneacutee de philosophie agrave luniversiteacute UpsilonltsituationActuellegt ltsituationActuellegt ltdiplomesgt ltdiplomegt 2006ltanneegt ltanneegt Baccalaureacuteat litteacuteraireltintitulegt ltintitulegt ltdiplomegt ltdiplomegt 2003ltanneegt ltanneegt Brevet des collegravegesltintitulegt ltintitulegt ltdiplomegt ltdiplomesgt ltstagesgt ltstagegt eacuteteacuteltdategt ltdategt 2005ltanneegt ltanneegt Relecteur chez Eyrolleslttitregt lttitregt Reacutevision douvrages dinformatique et utilisation de la suite OpenOfficeorg et du ltdescriptiongtlogiciel de gestion de versions Subversionltdescriptiongt ltstagegt ltstagegt eacuteteacuteltdategt ltdategt 2004ltanneegt ltanneegt Stagiaire agrave lUTClttitregt lttitregt Structuration documentaire utilisation de Scenariltdescriptiongt ltdescriptiongt ltstagegt ltstagesgt ltcompetencesgt ltcompetencegt Tregraves bonne pratique du franccedilais eacutecritlttitregt lttitregt ltcompetencegt ltcompetencegt Outils bureautiqueslttitregt lttitregt Suite OpenOfficeorg Adobe Photoshop et The Gimp Adobeltdescriptiongt Illustrator et Inkscapeltdescriptiongt ltcompetencegt

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 56: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Solutions des exercices

56Steacutephane Crozat

48 49 50 51 Anglais52 Bilingue53 54 55 Chinois56 Rudiments57 58 59 60 Surf61 Cineacutema62 Roller63 Lecture64 65666768

ltcompetencesgt ltlanguesgt ltlanguegt Anglaisltintitulegt ltintitulegt Bilingueltniveaugt ltniveaugt ltlanguegt ltlanguegt Chinoisltintitulegt ltintitulegt Rudimentsltniveaugt ltniveaugt ltlanguegt ltlanguesgt ltloisirsgt Surfltloisirgt ltloisirgt Cineacutemaltloisirgt ltloisirgt Rollerltloisirgt ltloisirgt Lectureltloisirgt ltloisirgt ltloisirsgtltcvgt

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 57: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Signification des abreacuteviations

57Steacutephane Crozat

DTD Document Type Definition

XML eXtensible Markup Language

Abreacuteviations

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 58: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Bibliographie

58Steacutephane Crozat

Alexandre Brillant [ISBN 978-2212126914]XML Cours et exercices Eyrolles 2007

Bibliographie

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 59: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Webographie

59Steacutephane Crozat

[James Clark John Cowan Murata Makoto RELAX NG Compact Syntax Tutorial OASIS 2003]httpwwwrelaxngorgcompact-tutorial-20030326html

Webographie

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index
Page 60: Schémas XML - stph.scenari-community.org · version du standard XML. Il est en fait intégré au standard W3C de XML. Il est directement hérité de la norme SGML. Les DTDs utilisent

Index

60Steacutephane Crozat

ANYp 10

ATTLISTp 10

Attributp 4 10

DTDp 4

Eleacutementp 4 10

Eacuteleacutementp 8

EMPTYp 10

Scheacutemap 15

Syntaxep 15

Validep 4

Index

  • Introduction aux scheacutemas XML
    • Notion de document valide
    • Document Type Definition
    • W3C XML Schema
    • Regular Language for XML Next Generation
      • Deacutefinition de type de document
        • Deacuteclaration deacuteleacutements
        • Deacuteclaration deacuteleacutements EMPTY et ANY
        • Deacuteclarations de listes dattributs
        • Identifiants et reacutefeacuterences (ID et IDREF)
        • Contenu mixte (mixed content)
        • Deacuteclaration de DTD dans les fichiers XML
        • Exemple de DTD
        • Inconveacutenients et avantages des DTD
        • La syntaxe DTD en reacutesumeacute
          • RelaxNG
            • Relax NG Syntaxe XML
            • Patterns nommeacutes
            • Ensembles non ordonneacutes
            • Contenu mixte
            • Namespace cible
            • Inclusion de scheacutemas
            • Types de donneacutees
            • Relax NG Syntaxe Compacte
            • Compleacutement Principes de conception de scheacutemas
            • Pour aller plus loin
              • Exemples
                • Exemple Carnet dadresse (XML DTD Relax NG)
                • Exemple Bulletins meacuteteacuteo (XML DTD RNC XSD)
                  • Exercices
                    • Exercices DTD
                      • Exercice Une DTD
                      • Exercice
                      • Exercice Utiliser des DTD avec Oxygen
                      • Exercice
                        • Quiz DTD
                          • Preacuteambule
                          • Exercice Fichiers bien formeacutes
                          • Exercice Fichiers valides
                          • Exercice Scheacutema inteacutegrateur
                            • Exercices RelaxNG
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice
                              • Exercice Scheacutema CV
                                  • Solutions des exercices
                                  • Abreacuteviations
                                  • Bibliographie
                                  • Webographie
                                  • Index