Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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