Upload
ngokhanh
View
219
Download
0
Embed Size (px)
Citation preview
LO
17
httpsstphscenari-communityorg
Introduction agraveXML principes
syntaxe scheacutemaset manipulations
Paterniteacute - Partage des Conditions Initiales agrave lIdentique httpcreativecommonsorglicensesby-sa20fr
STEacutePHANE CROZAT
19 feacutevrier 2016
Table des matiegraveres
Objectifs 5
I - Exemple Un document XML 7
II - Principes 9
A Exercices Culture XML9 1 Exercice9 2 Exercice Galaxie XML10
B XML leXtensible Markup Language11 1 Deacutefinition du XML11 2 XML un langage agrave balise11 3 XML un meacuteta-langage12 4 Langages standard et langages locaux13 5 Langages XML orienteacutes donneacutees13 6 Langages XML orienteacutes documents14
III - Syntaxe 17
A Exercices Syntaxe XML17 1 Exercice17 2 Exercice18 3 Exercice18
B Syntaxe de base XML19 1 Document bien formeacute19 2 Balise19 3 Eacuteleacutement20 4 Attribut20 5 Structure geacuteneacuterale dun fichier XML21 6 Exemple de fichier XML - Le courriel22 7 La syntaxe XML en reacutesumeacute23
IV - Scheacutemas 25
A Une DTD25
B Introduction aux scheacutemas XML26 1 Notion de document valide26 2 Document Type Definition26 3 W3C XML Schema27 4 Regular Language for XML Next Generation28
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 3
V - Manipulations 31
A XPath et XSLT31 1 Larbre du document XML31 2 Introduction agrave XPath32 3 Exercice33 4 Deacutefinition de XSL-XSLT34 5 Principe de XSL-XSLT34 6 Exercice35
B SAX et DOM36 1 Introduction agrave SAX et illustration avec Java36 2 Principes du DOM37 3 Fonctions et objets DOM en JavaScript38
VI - Compleacutements 41
A Preacuteambule XML selon le W3C41
B Historique de SGML agrave XML42
C Discussion HTML et XML43
D Commentaires46
E Namespace48
F Syntaxe XML et espaces52
G Encodage des caractegraveres53
H Exemple Un programme XSLT pour geacuteneacuterer du HTML53
Solution des exercices 59
Glossaire 65
Signification des abreacuteviations 67
Bibliographie 69
Webographie 71
Index 73
Contenus annexes 75
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)4
Objectifs
Connaicirctre les principes du meacuteta-langage XML pour lesapplications orienteacutees donneacutees et orienteacutees documents
Savoir lire et eacutecrire un document XML
Savoir reacutealiser un scheacutema XML simple
Savoir reacutealiser une transformation XML simple
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 5
I - Exemple Un document XML
I
Exemple Un mail
1 ltxml version=10 encoding=iso-8859-1gt2 ltmailgt3 ltdegtstephanecrozatutcfrltdegt4 ltagtfabriceissacutcfrltagt5 ltobjetgtDemande dinformationltobjetgt6 ltdategt01-03-2001ltdategt7 ltcorpsgt8 ltparagraphegtBonjour Fabriceltparagraphegt9 ltparagraphegtPeux tu mexpliquer ce quest le langage XML
ltparagraphegt10 ltparagraphegtIl me faudrait en effet ton avis eacuteclaireacute sur le
sujetltparagraphegt11 ltparagraphegtJattends ta reacuteponse agrave bientocirctltparagraphegt12 ltcorpsgt13 ltmailgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 7
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Table des matiegraveres
Objectifs 5
I - Exemple Un document XML 7
II - Principes 9
A Exercices Culture XML9 1 Exercice9 2 Exercice Galaxie XML10
B XML leXtensible Markup Language11 1 Deacutefinition du XML11 2 XML un langage agrave balise11 3 XML un meacuteta-langage12 4 Langages standard et langages locaux13 5 Langages XML orienteacutes donneacutees13 6 Langages XML orienteacutes documents14
III - Syntaxe 17
A Exercices Syntaxe XML17 1 Exercice17 2 Exercice18 3 Exercice18
B Syntaxe de base XML19 1 Document bien formeacute19 2 Balise19 3 Eacuteleacutement20 4 Attribut20 5 Structure geacuteneacuterale dun fichier XML21 6 Exemple de fichier XML - Le courriel22 7 La syntaxe XML en reacutesumeacute23
IV - Scheacutemas 25
A Une DTD25
B Introduction aux scheacutemas XML26 1 Notion de document valide26 2 Document Type Definition26 3 W3C XML Schema27 4 Regular Language for XML Next Generation28
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 3
V - Manipulations 31
A XPath et XSLT31 1 Larbre du document XML31 2 Introduction agrave XPath32 3 Exercice33 4 Deacutefinition de XSL-XSLT34 5 Principe de XSL-XSLT34 6 Exercice35
B SAX et DOM36 1 Introduction agrave SAX et illustration avec Java36 2 Principes du DOM37 3 Fonctions et objets DOM en JavaScript38
VI - Compleacutements 41
A Preacuteambule XML selon le W3C41
B Historique de SGML agrave XML42
C Discussion HTML et XML43
D Commentaires46
E Namespace48
F Syntaxe XML et espaces52
G Encodage des caractegraveres53
H Exemple Un programme XSLT pour geacuteneacuterer du HTML53
Solution des exercices 59
Glossaire 65
Signification des abreacuteviations 67
Bibliographie 69
Webographie 71
Index 73
Contenus annexes 75
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)4
Objectifs
Connaicirctre les principes du meacuteta-langage XML pour lesapplications orienteacutees donneacutees et orienteacutees documents
Savoir lire et eacutecrire un document XML
Savoir reacutealiser un scheacutema XML simple
Savoir reacutealiser une transformation XML simple
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 5
I - Exemple Un document XML
I
Exemple Un mail
1 ltxml version=10 encoding=iso-8859-1gt2 ltmailgt3 ltdegtstephanecrozatutcfrltdegt4 ltagtfabriceissacutcfrltagt5 ltobjetgtDemande dinformationltobjetgt6 ltdategt01-03-2001ltdategt7 ltcorpsgt8 ltparagraphegtBonjour Fabriceltparagraphegt9 ltparagraphegtPeux tu mexpliquer ce quest le langage XML
ltparagraphegt10 ltparagraphegtIl me faudrait en effet ton avis eacuteclaireacute sur le
sujetltparagraphegt11 ltparagraphegtJattends ta reacuteponse agrave bientocirctltparagraphegt12 ltcorpsgt13 ltmailgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 7
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
V - Manipulations 31
A XPath et XSLT31 1 Larbre du document XML31 2 Introduction agrave XPath32 3 Exercice33 4 Deacutefinition de XSL-XSLT34 5 Principe de XSL-XSLT34 6 Exercice35
B SAX et DOM36 1 Introduction agrave SAX et illustration avec Java36 2 Principes du DOM37 3 Fonctions et objets DOM en JavaScript38
VI - Compleacutements 41
A Preacuteambule XML selon le W3C41
B Historique de SGML agrave XML42
C Discussion HTML et XML43
D Commentaires46
E Namespace48
F Syntaxe XML et espaces52
G Encodage des caractegraveres53
H Exemple Un programme XSLT pour geacuteneacuterer du HTML53
Solution des exercices 59
Glossaire 65
Signification des abreacuteviations 67
Bibliographie 69
Webographie 71
Index 73
Contenus annexes 75
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)4
Objectifs
Connaicirctre les principes du meacuteta-langage XML pour lesapplications orienteacutees donneacutees et orienteacutees documents
Savoir lire et eacutecrire un document XML
Savoir reacutealiser un scheacutema XML simple
Savoir reacutealiser une transformation XML simple
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 5
I - Exemple Un document XML
I
Exemple Un mail
1 ltxml version=10 encoding=iso-8859-1gt2 ltmailgt3 ltdegtstephanecrozatutcfrltdegt4 ltagtfabriceissacutcfrltagt5 ltobjetgtDemande dinformationltobjetgt6 ltdategt01-03-2001ltdategt7 ltcorpsgt8 ltparagraphegtBonjour Fabriceltparagraphegt9 ltparagraphegtPeux tu mexpliquer ce quest le langage XML
ltparagraphegt10 ltparagraphegtIl me faudrait en effet ton avis eacuteclaireacute sur le
sujetltparagraphegt11 ltparagraphegtJattends ta reacuteponse agrave bientocirctltparagraphegt12 ltcorpsgt13 ltmailgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 7
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Objectifs
Connaicirctre les principes du meacuteta-langage XML pour lesapplications orienteacutees donneacutees et orienteacutees documents
Savoir lire et eacutecrire un document XML
Savoir reacutealiser un scheacutema XML simple
Savoir reacutealiser une transformation XML simple
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 5
I - Exemple Un document XML
I
Exemple Un mail
1 ltxml version=10 encoding=iso-8859-1gt2 ltmailgt3 ltdegtstephanecrozatutcfrltdegt4 ltagtfabriceissacutcfrltagt5 ltobjetgtDemande dinformationltobjetgt6 ltdategt01-03-2001ltdategt7 ltcorpsgt8 ltparagraphegtBonjour Fabriceltparagraphegt9 ltparagraphegtPeux tu mexpliquer ce quest le langage XML
ltparagraphegt10 ltparagraphegtIl me faudrait en effet ton avis eacuteclaireacute sur le
sujetltparagraphegt11 ltparagraphegtJattends ta reacuteponse agrave bientocirctltparagraphegt12 ltcorpsgt13 ltmailgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 7
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
I - Exemple Un document XML
I
Exemple Un mail
1 ltxml version=10 encoding=iso-8859-1gt2 ltmailgt3 ltdegtstephanecrozatutcfrltdegt4 ltagtfabriceissacutcfrltagt5 ltobjetgtDemande dinformationltobjetgt6 ltdategt01-03-2001ltdategt7 ltcorpsgt8 ltparagraphegtBonjour Fabriceltparagraphegt9 ltparagraphegtPeux tu mexpliquer ce quest le langage XML
ltparagraphegt10 ltparagraphegtIl me faudrait en effet ton avis eacuteclaireacute sur le
sujetltparagraphegt11 ltparagraphegtJattends ta reacuteponse agrave bientocirctltparagraphegt12 ltcorpsgt13 ltmailgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 7
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
II - Principes II
Exercices Culture XML 9
XML leXtensible Markup Language 11
A Exercices Culture XML
1 Exercice[Solution ndeg1 p 49]
Exercice
Historique dXML Cocher toutes les propositions correctes
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
XML versus HTML Cocher toutes les propositions correctes
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 9
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exercice
Quest ce qui est neacutecessaire pour avoir un document XML bien formeacute
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Que permet un scheacutema XML
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
2 Exercice Galaxie XML[Solution ndeg2 p 50]
Ranger les termes suivants dans les bonnes cateacutegories 1 - SVG 2 - XHTML 3 - Open Document Format 4 - DocBook 5 - SGML 6 - HTML 7 - W3C 8 - OASIS 9 - SMIL
10 - XML
Meacuteta-langage Format depublication XML
Format depublication
SGML
Langage destructurationdocumentaire
Organisme destandardisation
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)10
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
B XML leXtensible Markup Language
1 Deacutefinition du XML
Deacutefinition XMLLeXtensible Markup Language XML [w_w3corgXML] est un meacuteta-langagepermettant de deacutefinir des langages agrave balisesIl standardiseacute comme une recommandation par le W3C depuis 1998
Exemple LaTeX et HTML sont des langages agrave balises (mais ce ne sont pas des
langages XML) XHTML est un langage XML
FondamentalEn tant que meacuteta-langage XML sert agrave deacutefinir des formats informatiques cest agravedire des faccedilons de repreacutesenter de linformationLes bonnes caracteacuteristiques dXML - non-ambiguiumlteacute lisibiliteacute passiviteacute - en fontun tregraves bon candidat pour de tregraves nombreux usages il est donc utiliseacute dans dessecteurs tregraves varieacutes de linformatiqueOn distingue geacuteneacuteralement deux grandes cateacutegories dutilisation les langagesorienteacutes donneacutees et les langages orienteacutes documents
Compleacutement Versions de XMLLa version historique de XML est la version 10 qui reste aujourdhui la pluslargement utiliseacuteeIl existe eacutegalement une version 11 de XML qui propose des diffeacuterences mineureset neacutecessaires uniquement dans des contextes particuliers Cette nouvelle version aeacuteteacute neacutecessaire pour des raisons de compatibiliteacute des outils existants Les eacutevolutionsprincipales de XML 11 sont de nouveaux caractegraveres permis pour les nomsdeacuteleacutements (pour suivre leacutevolution dUnicode depuis 1998) de nouvellesconventions pour les caractegraveres de fin de ligne (pour la compatibiliteacute avec desordinateurs main frame) et de nouveaux caractegraveres de controcircle dans le contenu
Compleacutement Voir aussiXML Un langage agrave baliseXML un meacuteta-langageLangages XML orienteacutes donneacuteesLangages XML orienteacutes documentsCaracteacuteristiques rechercheacutees pour un format XML - p70
2 XML un langage agrave balise
Deacutefinition Langage agrave balisesUne balise est un descripteur ajouteacute au contenu en vue dun traitementinformatique
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 11
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Un langage agrave balises est un langage permettant dassocier agrave un contenu(geacuteneacuteralement du texte) des balises explicites (par exemple pour rendre compte dela structure du texte)
Exemple Balises Lambda
1 ltlambdagt2 ltbodygt3 ltpgtThis is an exampleltpgt4 ltbodygt5 ltlambdagt
Ici le texte est This is an example il est baliseacute afin dajouter les informationssuivantes cest est un paragraphe (balise p) du corps (balise body) dun documentLambda (balise lambda)
Compleacutement Voir aussiBalises et poigneacutees de calcul - p65
3 XML un meacuteta-langage
Deacutefinition Meacuteta-langageUn meacuteta-langage est un langage permettant de deacutefinir dautres langages leslangages ainsi deacutefinis permettent agrave leur tour la description dinformationsrespectant ces langages
Exemple Langage LambdaSi lon deacutesire deacutefinir informatiquement un langage Lambda en disant quil peutcontenir un eacuteleacutement de type body qui lui mecircme contient des eacuteleacutements de type p ilfaut speacutecifier les contraintes de ce langage gracircce agrave un meacuteta-langage permettantdonc de deacutefinir
Le vocabulaire lambda body p
La grammaire lambda contient exactement un body qui contient un ouplusieurs p
XML en tant que meacuteta-langage ne contient pas les mots du langage Lambda enrevanche il dispose des meacutecaniques permettant de les deacutefinir
Deacutefinition Notion de scheacutemaLa deacutefinition dun langage XML particulier se fait gracircce agrave un scheacutema qui permet delister les mots du langage (vocabulaire) et de deacutefinir leur utilisation (grammaire)On parle eacutegalement de format
Exemple Scheacutema Lambda
1 ltELEMENT lambda (body) gt2 ltELEMENT body (p+) gt3 ltELEMENT p (PCDATA) gt
Ce code exprime formellement (avec la syntaxe DTD) le langage ou formatLambda
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)12
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
4 Langages standard et langages locaux
Deacutefinition Format standardOn appelle langage (ou format) standard un langage dont le scheacutema est deacutefini parune organisation reconnue et multipartite (W3C ISO OASIS ) pour les besoinsgeacuteneacuteriques dune large communauteacute en geacuteneacuteral internationale
Remarque Standard de faitOn appelle standard de fait les langages imposeacutes par une organisation unique maisagrave une telle eacutechelle que leur usage est incontournable Cest typiquement lexempledes formats de la suite bureautique Microsoft Office (doc xls ppt )
Deacutefinition Format localOn appelle langage (ou format) local - par opposition au format standard - unlangage deacutefini par une organisation seule ou une communauteacute restreinte pour sesbesoins propres (un service une entreprise voire un reacuteseau dorganisations dansun pays )
Deacutefinition Format ouvert ou fermeacuteUn format est dit ouvert lorsquil est public et que nimporte qui peut lutiliser sanscontrainte Il est au contraire fermeacute si son accegraves est proteacutegeacute payant ou soumis agravedautres contraintes
Remarque Format proprieacutetaireOn parle de format proprieacutetaire pour deacutesigner un format agrave la fois local et fermeacute
5 Langages XML orienteacutes donneacutees
DeacutefinitionIls permettent denregistrer et de transporter des donneacutees informatiquesstructureacutees (comme par exemple des donneacutees geacutereacutees par des bases de donneacutees)selon des formats ouvert (cest agrave dire dont on connaicirct la syntaxe) et facile agravemanipuler (les structures arborescentes XML eacutetant plus riches que des fichiers agraveplat par exemple)Les langages XML orienteacutees donneacutees servent surtout agrave leacutechange ou laseacuterialisation des donneacutees des programmes informatiques
RemarqueLutilisation dXML est en fait ici assez accessoire dautres formalismes sysubstituent sans difficulteacute souvent moins explicites pour la manipulation humaineet souvent plus performant pour la manipulation informatique CSV JSON (voirpar exemple httpwwwxulfrajax-format-jsonhtml1 pour une comparaisonJSON XML)
Remarque Format verbeuxXML est en geacuteneacuteral plus verbeux que ses alternatives (il contient plus decaractegraveres) cest pourquoi il est plus explicite pour un humain (ce qui nest pas
1 - httpwwwxulfrajax-format-jsonhtml
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 13
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
toujours utile) et moins performant informatiquement (ce qui nest pas toujours unproblegraveme)
Exemple Formats XML orienteacutes donneacutees standards MathML ChemML
ATOM RSS
Dublin Core
RDF OWL
SVG
Exemple Formats XML orienteacutes donneacutees locauxXML est utiliseacute pour de tregraves nombreux langages orienteacutes donneacutees locaux en faitchaque fois quun format XML est deacutefini pour les besoins speacutecifique dunprogramme
1 ltmyVectorgt2 ltxgt5ltxgt3 ltygt19ltygt4 ltmyVectorgt
Compleacutement Langages XML de programmationLe formalisme XML est eacutegalement utiliseacute pour deacutefinir des langages deprogrammation agrave linstar du C ou du Java Les langages de programmation eacutecritsen XML sont geacuteneacuteralement agrave vocation deacuteclarative et adressent le plus souvent destraitements eux mecircmes lieacutes agrave XMLXSL-XSLT est un exemple de langage de programmation eacutecrit en XML On peuteacutegalement citer par exemple le langage de script ANT (httpantapacheorg2) ouXUL pour la reacutealisation dIHM (httpwwwxulfr3)
6 Langages XML orienteacutes documents
DeacutefinitionIls permettent de repreacutesenter informatiquement des documents numeacuteriques Lesformats de documents faisant appel agrave des repreacutesentations fortement arborescentesXML est un candidat ideacuteal pour cet usage En fait SGML lancecirctre de XML a eacuteteacuteinventeacute pour linformatique documentaire Aujourdhui la tregraves grande majoriteacute desformats de repreacutesentation de document sont en XML
Deacutefinition Langages XML orienteacute documents formateacutesIls deacutefinissent des formats de mise en forme de document (structure physique) engeacuteneacuteral pour un support donneacute
Exemple Langages XML orienteacutes documents formateacutes XHTML
XSL-FO
2 - httpantapacheorg3 - httpwwwxulfr
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)14
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
SMIL
OpenDocument
OOXML
Deacutefinition Langages XML orienteacutes documents structureacutesIls deacutefinissent des formats de structuration de document (structure logique) engeacuteneacuteral pour un meacutetier donneacute plus ou moins preacutecis selon la geacuteneacuteraliteacute du langage
Exemple Langages XML orienteacutes documents structureacutes DocBook
TEI
DITA
Exemple Format local orienteacute document structureacute
1 ltxml version=10 encoding=UTF-8gt2 ltdocument type=Lorem ipsumgt3 ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscing
elit Pellentesque sit amet4 libero ac mauris egestas venenatis nec vitae sapienltparagraphegt5 ltparagraphegtDonec a lectus sed augue pellentesque accumsan eu ac
justo Etiam est urna sagittis6 ac cursus nec placerat quis velitltparagraphegt7 ltdocumentgt
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Principes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 15
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
III - Syntaxe III
Exercices Syntaxe XML 17
Syntaxe de base XML 19
A Exercices Syntaxe XML
1 Exercice[Solution ndeg3 p 51]
Soit le fichier ci-apregraves quelles sont les assertions vraies
1 ltpapier type=scientifiquegt2 lttitregtReacuteinterroger les structures documentaireslttitregt3 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt4 ltauteurgtSteacutephane Crozatltauteurgt5 ltauteurgtBruno Bachimontltauteurgt6 ltresumegtNous proposons dans cet article daborder ltresumegt7 ltabstractgtIn this paper we defineltabstractgt8 ltmotsClesgt9 lttermegtIngeacutenierie des connaissanceslttermegt
10 lttermegtXMLlttermegt11 lttermegtDocumentlttermegt12 ltmotsClesgt13 ltkeywordsgt14 ltwordgtKnowledge engineeringltwordgt15 ltwordgtXMLltwordgt16 ltwordgtDocumentltwordgt17 ltkeywordsgt18 ltpublication date=2004-07-05gt19 ltversion maj=1 min=0gt20 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
21 ltpapiergt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 17
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autres
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autres
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGML
2 Exercice[Solution ndeg4 p 51]
Compleacuteter les trous avec les balises fermantes adeacutequatesltxml version=10gt
ltdocumentgt
ltentetegt
lttitregtDocument agrave corrigerlttitregt
ltauteurgtSteacutephane Crozat
ltdategt01-03-01
ltversion numero=1gt
ltcorpsgt
ltdivision titre=Premiegravere partiegt
ltparagraphegtCe texte doit ecirctre ltimportantgtcorrigeacute ltparagraphegt ltparagraphegtLe contenu est sans importance iciltparagraphegt
ltdivisiongt
ltdivision titre=Seconde partiegt
ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegt
3 Exercice[Solution ndeg5 p 51]
Fermer les balises du fichier suivant afin quil soit un document XML bien formeacuteltdocAbstraitgt
ltcontenugt
ltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitlt gt
ltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsum
ltparagtPhasellus lacinia ipsum vitae interdum tincidunt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)18
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
ltPgtNullam pulvinar diam et tellus ullamcorpereleifendlt gtlt gtlt gtlt gt
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitlt gtlt gt
B Syntaxe de base XML
1 Document bien formeacute
DeacutefinitionUn document est dit bien formeacute lorsquil respecte les regravegles syntaxiques du XML
FondamentalXML ne pose pas de seacutemantique agrave priori mais uniquement des regravegles syntaxiques
SyntaxeLes regravegles syntaxiques agrave respecter sont
Il nexiste quun seul eacuteleacutement pegravere par document cet eacuteleacutement contenanttous les autres Il est eacutegalement appeleacute racine
Tout eacuteleacutement fils est inclus complegravetement dans son pegravere (pas deacuteleacutementscroiseacutes)
AttentionXML ne deacutefinit pas le comportement ni la maniegravere dont doit ecirctre traiteacute undocument mais uniquement un format
2 Balise
Deacutefinition BaliseLes balises sont les composants fondamentaux permettant leacutecriture de documentsXMLElles se distinguent du contenu en utilisant les caractegraveres lt gt et Elles nont pasde preacutesentation ou de signification deacutefinie par le langage mais elles auront un senspour les applications etou le lecteur
SyntaxeIl existe trois types de balises
balise douverture ltnom_balisegt
balise de fermeture ltnom_balisegt
balise vide ltnom_balisegt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 19
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Exemple de balise XML
1 ltadressegt12 rue de Parisltadressegt
3 Eacuteleacutement
Deacutefinition EacuteleacutementUn eacuteleacutement XML est un extrait dun fichier XML comprenant
une balise ouvrante
une balise fermante
le contenu compris entre les deux balises qui peut ecirctre du texte etoudautres eacuteleacutements ou rien (eacuteleacutement vide)
Le nom dun eacuteleacutement peut ecirctre composeacute de tout caractegravere alphanumeacuterique plus _ -et De plus ils doivent commencer par un caractegravere alphabeacutetique ou _ et ceuxcommenccedilant par la chaicircne xml sont reacuteserveacutes (que ce soit en minusculesmajuscules ou un meacutelange des deux)
Attention Case-sensitiveXML diffeacuterencie les majuscules des minuscules il faut donc respecter la casse
AttentionDeux eacuteleacutements ne peuvent pas avoir un contenu croiseacute ltnom1gt ltnom2gt ltnom1gt ltnom2gt est interdit
Deacutefinition Eacuteleacutement videOn appelle eacuteleacutement vide un eacuteleacutement qui ne comporte rien entre sa balise ouvranteet sa balise fermante
Syntaxe Eacuteleacutement videLes syntaxes ltelementgtltelementgt et ltelementgt sont strictement eacutequivalentes
4 Attribut
DeacutefinitionUn attribut est une information suppleacutementaire attacheacutee agrave un eacuteleacutement on parle demeacutetadonneacutee
SyntaxeLes attributs dun eacuteleacutement sont formeacutes dune suite daffectations seacutepareacutees par desespaces attribut1=valeur attribut2=valeur
Ils sont ajouteacutes agrave la balise ouvrante ou agrave une balise vide (jamais agrave une balisefermante)
ltnom_element [attributs]gt
ltnom_element [attributs]gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)20
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
La valeur est indiqueacutee entre apostrophes ou guillemets (au choix mais pas demeacutelange des deux)
attribut1=valeur ou attribut1=valeur
MeacutethodeUtilisez des apostrophes si la valeur de lattribut inclut des guillemets et vice etversa
AttentionUn eacuteleacutement ne peut pas contenir deux attributs ayant le mecircme nom
SyntaxeLe nom dun attribut est soumis aux mecircmes contraintes que les noms deacuteleacutements La valeur de lattribut quant agrave elle peut contenir tout caractegravere agrave lexception de ^ et amp
Remarque Eacutequivalence attribut eacuteleacutementUn attribut peut toujours ecirctre repreacutesenteacute alternativement par un eacuteleacutement fils deleacuteleacutement quil caracteacuterise avec une signification du mecircme ordre
ltelement attribut=xgt et
ltelementgtltattributgtxltattributgtltelementgt sont similaires
Il est donc tout agrave fait possible de faire du XML sans utiliser dattribut
Meacutethode Usage des attributsOn utilise geacuteneacuteralement les attributs
Pour diffeacuterencier le contenu destineacute agrave ecirctre afficheacute dans le document lisibledes meacutetadonneacutees qui ne le seront pas (version date de creacuteation )
Pour simplifier leacutecriture du document
Pour ajouter des identifiants et des reacutefeacuterences
5 Structure geacuteneacuterale dun fichier XML
SyntaxeUn document XML est constitueacute de
Un prologue
Il est facultatif et comprend une deacuteclaration XML indiquant la version dulangage XML utiliseacute et le codage des caractegraveres dans le document Chacunede ces informations est optionnelle mais leur ordre est obligatoireltxml version=numeacutero de version encoding=encodage descaractegraveresgt
Un arbre deacuteleacutements contenant au moins un eacuteleacutement (leacuteleacutement racine)
Exemple Prologue
1 ltxml version=10 encoding=UTF-8gt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 21
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Indique que le document est codeacute en utilisant un langage XML de version 10avec des caractegraveres codeacutes selon la norme UTF-8
Exemple Arbre deacuteleacutements
1 ltlettregt2 ltexpediteurgtmoiltexpediteurgt3 ltlettregt
6 Exemple de fichier XML - Le courriel
Exemple Un courriel imprimeacuteDate Mar 28 Oct 2003 140101 +0100 (CET)De Marcel ltmarcelicifrgtA Robert ltrobertlabasfrgtSujet HirondelleSalutPourrais-tu mindiquer quelle est la vitesse de vol dune hirondelle transportant unenoix de coco A tregraves bientocirctMarcel
Repreacutesentation possible de ce message en XML
1 ltxml version=10 encoding=ISO-8859-1gt2 ltemailgt3 ltentetegt4 ltdate type=JJMMAAAAgt28102003ltdategt5 ltheure type=24 local=(GMT+01 00)gt140101ltheuregt6 ltexpediteurgtltadresse
mail=marcelicifrgtMarcelltadressegtltexpediteurgt7 ltrecepteurgtltadresse
mail=robertlabasfrgtRobertltadressegtltrecepteurgt8 ltsujetgtHirondelleltsujetgt9 ltentetegt
10 ltcorpsgt11 ltsalutationgtSalutltsalutationgt12 ltparagraphegtPourrais-tu mindiquer quelle est la vitesse de vol
dune hirondelle transportant une noix de coco ltparagraphegt13 ltpolitessegtA tregraves bientocirctltpolitessegt14 ltsignaturegtMarcelltsignaturegt15 ltcorpsgt16 ltemailgt
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)22
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Compleacutement Arbre deacuteleacutements du document email correspondant
Image 1 Repreacutesentation dun document XML sous forme darbre
7 La syntaxe XML en reacutesumeacute
Les regravegles de syntaxe dXML sont tregraves simples un document XML comporte un en-tecircte permettant de lidentifier en tant que document XML et un eacuteleacutement racinecontenant tous les autres eacuteleacutements Un eacuteleacutement est caracteacuteriseacute par une baliseouvrante et une balise fermante et contient dautres eacuteleacutements etou du contenu
Aspect Syntaxe Explication
Entecircte
Eleacutement
Attribut
Eleacutement vide ltNomElementVidegt
Contenu
ltxml version=10 encoding=UTFshy8gt
Un document XML peut contenir une ligne dentecircte qui sert agrave identifier le document en tant que document XML et geacuteneacuteralement agrave speacutecifier le systegraveme dencodage de caractegraveres utiliseacute dans le document
Eleacutement racine
ltNomElementRacinegt ltNomElementRacinegt
Tout document XML contient un et un seul eacuteleacutement dit racine contenant tous les autres
ltNomElementgt ltNomElementgt
Un eacuteleacutement est caracteacuteriseacute par une balise ouvrante et une balise fermante obligatoire les eacuteleacutements sont donc inclus les uns dans les autres et ne peuvent se croiser Les balises tiennent compte de la casse des caractegraveres
ltNomElement NomAttribut=valeurgt
Un attribut associeacute agrave une valeur peut ecirctre speacutecifieacute dans la balise ouvrante dun eacuteleacutement
Un eacuteleacutement peut ecirctre vide il est alors noteacute par une unique balise agrave la syntaxe particuliegravere Un eacuteleacutement vide contient en geacuteneacuteral des attributs
ltNomElementgt contenu ici ltNomElementgt
Le contenu est placeacute agrave linteacuterieur des eacuteleacutements cest agrave dire entre les balises
Tableau 1 Aspects principaux de la syntaxe XML
Syntaxe
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 23
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
IV - Scheacutemas IV
Une DTD 25
Introduction aux scheacutemas XML 26
A Une DTD
Soit la DTD suivante
1 ltELEMENT entete (titre date auteur+ motscles resume)gt2 ltELEMENT titre (PCDATA)gt3 ltELEMENT date (PCDATA)gt4 ltELEMENT auteur (PCDATA)gt5 ltELEMENT motscles (PCDATA)gt6 ltELEMENT resume (paragraphe+)gt7 ltELEMENT paragraphe (PCDATA)gt
Q u e s t i o n 1[Solution ndeg6 p 52]
Produire un document XML valide par rapport agrave cette DTD
Q u e s t i o n 2[Solution ndeg7 p 52]
Le document suivant est-il valide par rapport agrave la DTD
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtDocument de testlttitregt5 ltdategt2 deacutecembre 2009ltdategt6 ltauteurgtSteacutephane Crozatltauteurgt7 ltmotsclesgtDocument DTD XML Valideltmotsclesgt8 ltentetegt
Q u e s t i o n 3[Solution ndeg8 p 52]
Produire le plus petit document XML valide par rapport agrave cette DTD
Q u e s t i o n 4[Solution ndeg9 p 52]
Produire un document XML utilisant toutes les balises de la DTD
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 25
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
B Introduction aux scheacutemas XML
1 Notion de document valide
Deacutefinition ScheacutemaUn scheacutema est une description de la structure que doit respecter un document luifaisant reacutefeacuterence cest agrave dire quil eacutetablit la liste des eacuteleacutements XML autoriseacutes (avecleurs attributs) ainsi que lagencement possible de ces eacuteleacutementsOn parle aussi de grammaire au sens ougrave le scheacutema deacutefinit lenchaicircnementautoriseacute des balises et vient en compleacutement de la syntaxe XML (qui elle estindeacutependante dun scheacutema particulier)
Deacutefinition Document valideUn document XML bien formeacute est dit valide pour un scheacutema donneacute sil respecteles regravegles structurelles imposeacutees par ce scheacutema
Ce controcircle de la structure permet De sassurer lhomogeacuteneacuteiteacute structurelle des documents de mecircme type
Le traitement automatique dun ensemble de documents de mecircme type(mise en forme stockage extraction dinformations)
La creacuteation de formats standard et leur respect
Exemple Exemples de langages de scheacutemaIl existe plusieurs langages de deacutefinition scheacutema mais les trois principaux sont
Document Type Deacutefinition (W3C) Un langage heacuteriteacute de SGML qui fait partiedu standard XML
W3C XML Schema (W3C) Une alternative aux DTD destineacute agrave moderniser etcompleacuteter ce langage historique
Relax NG (OASIS ISO) Une autre alternative compromis entre W3C XMLSchema et DTD
2 Document Type Definition
Le formalisme de deacutefinition de scheacutema DTD est le premier qui a eacuteteacute introduit degraves lapremiegravere version du standard XML Il est en fait inteacutegreacute au standard W3C de XMLIl est directement heacuteriteacute de la norme SGML
Les DTDs utilisent un langage speacutecifique (non XML) pour deacutefinir les regraveglesstructurelles Un fichier de DTD peut contenir principalement deux types dedeacuteclarations
des deacuteclarations deacuteleacutements
indiquent les eacuteleacutements pouvant ecirctre inclus dans un document etlorganisation du contenu de chaque eacuteleacutement (eacuteleacutements fils ou texte)
des deacuteclarations dattributs
deacutefinissent les attributs pouvant ecirctre associeacutes agrave un eacuteleacutement ainsi que leurtype
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)26
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de document XML valide
1 ltxml version=10 encoding=iso-8859-1gt2 ltDOCTYPE document SYSTEM documentdtdgt3 ltdocument type=memogt4 ltparagraphegtXxxxxxxxxltparagraphegt5 ltparagraphegtXxxxxxxxxltparagraphegt6 ltparagraphegtXxxxxxxxxltparagraphegt7 ltdocumentgt8
3 W3C XML Schema
Les XML Schema ont eacuteteacute proposeacutes par le W3C pour permettre de deacutepasser leslimites des DTD httpwwww3orgXMLSchema4
On notera en particulier une syntaxe XML
lextension de lexpression des regravegles dorganisation structurelle (heacuteritagereacuteutilisation etc)
lajout dun langage de typage des eacuteleacutements (particuliegraverement utile pour lesformat XML orienteacutes donneacutees)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de W3C XML Schema correspondant
1 ltxml version=10 encoding=UTF-8gt 2 ltxsschema xmlnsxs=httpwwww3org2001XMLSchemagt 3 ltxselement name=documentgt4 ltxscomplexTypegt5 ltxssequencegt6 ltxselement maxOccurs=unbounded ref=paragraphegt 7 ltxssequencegt8 ltxsattribute name=type use=requiredgt9 ltxscomplexTypegt
10 ltxselementgt11 ltxselement name=paragraphe type=xsstringgt12 ltxsschemagt
4 - httpwwww3orgXMLSchema
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 27
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
4 Regular Language for XML Next Generation
RelaxNG (REgular LAnguage for XML Next Generation) est un langage de scheacutemaXML
RelaxNG est une alternative aux DTD et agrave W3C XML Schema qui combineles avantages de ces deux autres langages
RelaxNG est un standard OASIS et une norme ISOCEI
Deux syntaxes une syntaxe XML (alternative agrave W3C Schema) et unesyntaxe compacte (alternative aux DTD)
RelaxNG ne deacutefinit que la structure (comme les DTD) et utilise W3C XMLSchema pour le typage des donneacutees
httprelaxngorg5
CompleacutementLe standard est porteacute par James Clark depuis ses travaux sur Trex (il est issu de lafusion de Trex et Relax de Murata Makoto)
Exemple Exemple de scheacutemas publics deacutefinis en Relax NG OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
Exemple Exemple de DTD
1 ltELEMENT document (paragraphe+)gt2 ltATTLIST document type CDATA REQUIREDgt3 ltELEMENT paragraphe (PCDATA)gt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe XML)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltelement name=documentgt5 ltattribute name=typegt6 ltoneOrMoregt7 ltelement name=paragraphegt8 lttextgt9 ltelementgt
10 ltoneOrMoregt11 ltelementgt12 ltstartgt13 ltgrammargt
Exemple Exemple de scheacutema RelaxNG correspondant (syntaxe compacte)
1 start = element document 2 attribute type text 3 element paragraphe text+
5 - httprelaxngorg
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)28
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
4
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe XML patterns nommeacutes)
1 ltxml version=10 encoding=UTF-8gt2 ltgrammar xmlns=httprelaxngorgnsstructure10gt3 ltstartgt4 ltref name=documentgt5 ltstartgt6 ltdefine name=documentgt7 ltelement name=documentgt8 ltattribute name=typegt9 ltoneOrMoregt
10 ltref name=paragraphegt11 ltoneOrMoregt12 ltelementgt13 ltdefinegt14 ltdefine name=paragraphegt15 ltelement name=paragraphegt16 lttextgt17 ltelementgt18 ltdefinegt19 ltgrammargt
Exemple Autre exemple de scheacutema RelaxNG correspondant (syntaxe compacte patterns nommeacutes)
1 start = document2 document = element document attribute type text paragraphe+ 3 paragraphe = element paragraphe text
Scheacutemas
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 29
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
V - Manipulations V
XPath et XSLT 31
SAX et DOM 36
A XPath et XSLT
1 Larbre du document XML
Il est possible de repreacutesenter un document XML sous forme darbre tel que Larbre possegravede une racine qui a comme fils leacuteleacutement racine
leacuteleacutement racine est leacuteleacutement du document XML qui contient tous les autres
chaque nœud a comme fils les eacuteleacutements et le texte quil contient ainsi queses attributs
Exemple Fichier XML
1 ltxml version=10 encoding=UTF-8gt2 ltdocument modele=ULCoursGeneral code=BP-Incendie3_S1_E2_UL1gt3 ltentetegt4 ltidentificationgt5 lttitregtLassurance de la responsabiliteacute de voisinagelttitregt6 ltdategt210201ltdategt7 ltauteurgtAEAltauteurgt8 ltversiongt100ltversiongt9 ltidentificationgt
10 ltentetegt11 ltcorpsgt12 ltcontenugt13 ltparagraphegtCette garantie est appeleacutee recours des voisins et
des tiersltparagraphegt14 ltremarquegt15 ltparagraphegtLimage suivante ltressource URIsrc=img07jpg
titre=Recours des voisins et des tiers type=imagegt montre la garantieltparagraphegt
16 ltremarquegt17 ltcontenugt18 ltcorpsgt19 ltdocumentgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 31
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Arbre XML
1 2 |document 3 |modele = ULCoursGeneral 4 |code = BP-Incendie3_S1_E2_UL1 5 |entete 6 |identification 7 |titre 8 |text() = Lassurance de 9 |date
10 |text() = 210201 11 |auteur 12 |text() = AEA 13 |version 14 |text() = 100 15 |corps 16 |contenu 17 |paragraphe 18 |text() = Cette garantie 19 |remarque 20 |paragraphe 21 |text() = Limage suivante 22 |ressource 23 |URIsrc = img07jpg 24 |titre = Recours des voisins 25 |type = image 26 |text() = montre la garantie
Remarque Ordre des nœudsLensemble des nœuds de larbre dun document est muni dun ordre qui est celuide lordre dans le document XML seacuterialiseacute
2 Introduction agrave XPath
Deacutefinition Expression XPathXPath est un langage dexpressions permettant de pointer sur nimporte queleacuteleacutement dun arbre XML depuis nimporte quel autre eacuteleacutement de larbre
Une expression XPath peut-ecirctre absolue (sa reacutesolution est indeacutependantedun contexte ou nœud courant elle commence dans ce cas par
Une expression XPath peut-ecirctre relative (sa reacutesolution est deacutependantedun contexte ou nœud courant elle ne commence dans ce cas pas par elle peut commencer par (syntaxe deacuteveloppeacutee)
FondamentalUne expression XPath renvoie
un node-set ou ensemble de nœuds cest agrave dire un sous-arbre de larbre dudocument
une chaicircne de caractegraveres
un booleacuteen
un reacuteel
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)32
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Exemples dexpressions XPath
1 documententeteidentificationtitre2 documentmodele3 corpscontenu4 contenu5 contenuremarque[1]6 paragraphe7 type
Compleacutement Types de nœuds XPath root nodes
element nodes
text nodes
attribute nodes
namespace nodes
processing instruction nodes
comment nodes
httpwwww3orgTRxpathdata-model6
CompleacutementPour une introduction agrave XPath Brillant07 [Brillant07] pp123-129
3 Exercice[Solution ndeg10 p 52]
Soit le fichier XML ci-dessous Si le nœud courant est un des eacuteleacutements termeeacutecrivez 4 expressions XPath diffeacuterentes permettant de renvoyer le titre dudocument
1 Sachant que titre est unique dans tout le document 2 Sachant que titre est le fils de leacuteleacutement racine papier 3 Sachant que titre est le fils du pegravere du pegravere du nœud courant 4 Sachant que titre est avant le nœud courant dans lordre du document
1 ltxml version=10 encoding=UTF-8gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt
6 - httpwwww3orgTRxpathdata-model
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 33
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
1 2 3 4 preceding
4 Deacutefinition de XSL-XSLT
Deacutefinition XSL-XSLTXSL-XSLT est une partie du standard W3C XSL qui a trait agrave la transformation desdocuments XML (lautre partie eacutetant XSL-FO)XSL-XSLT est un langage de programmation deacuteclaratif eacutecrit en XML (un programmeXSL-XSLT est un document XML)
XSL-XSLT est langage de manipulation de document XML (fondeacute sur XPath etsur le modegravele arborescent de repreacutesentation des documents XML)
XSl-XSLT est utiliseacute pour transformer un document XML source dans unautre format typiquement HTML mais aussi tout autre format codeacute sur descaractegraveres dont la syntaxe est connue
XSL-XSLT est aussi utiliseacute pour faire des changements de scheacutema XML(export dun XML vers un autre XML structureacute diffeacuteremment) par exemplepour eacutechanger des donneacutees selon un standard
Remarque XSL-XSLT XSL-FO XSLT XSL FOOn parle souvent (par simplification) de XSL ou de XSLT pour deacutesigner XSL-XSLT etde FO pour deacutesigner XSL-FOXSL utiliseacute seul deacutesigne donc par convention XSL-XST (et non XSL-FO)
5 Principe de XSL-XSLT
XSL-XSLT fonctionne selon le principe suivant 1 Il prend en entreacutee un fichier XML bien formeacute 2 Il livre en sortie un fichier texte (XML HTML ou texte sans balise)
AlgorithmeLalgorithme geacuteneacuteral de XSL-XSLT est
1 Il seacutelectionne (match) les eacuteleacutements XML du fichier source 2 Pour chaque eacuteleacutement reconnu il geacutenegravere une sortie sur le fichier cible
Notion de regravegleUn programme XSL-XSLT est composeacute dune succession de regraveglesChaque regravegle est indeacutependante des autres et agrave en charge de seacutelectionner uneacuteleacutement dans la source et deffectuer une eacutecriture dans la cible
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)34
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Application dune regravegle XSL-XSLTSources
1 ltagt2 ltbgtltbgtltcgt3 ltagt
Regravegle XSL-XSLT
1 ltxsltemplate match=abgt2 BONJOUR 3 ltxsltemplategt
Reacutesultat
1 BONJOUR BONJOUR
6 Exercice[Solution ndeg11 p 53]
Soit le fichier filexml Compleacuteter le fichier XSLT transfxsl afin de geacuteneacutererpour chaque eacuteleacutement terme une instruction SQL dinsertion dans une tablerelationnelle de scheacutema tMotsCles (terme titre url) (ougrave terme est le termeseacutelectionneacute titre est le titre du document et url est ladresse de la ressourceassocieacutee)Pour rappel la syntaxe dinsertion de donneacutees dans une table relationnelle enSQL INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutesagrave valorisergt) VALUES (ltListe ordonneacutee des valeurs agrave affectergt)
Soit le fichier XML de la premiegravere question
1 lt--filexml--gt2 ltpapier type=scientifiquegt3 lttitregtReacuteinterroger les structures documentaireslttitregt4 ltsousTitregtDe la numeacuterisation agrave linformatisationltsousTitregt5 ltauteurgtSteacutephane Crozatltauteurgt6 ltauteurgtBruno Bachimontltauteurgt7 ltresumegtNous proposons dans cet article daborder ltresumegt8 ltabstractgtIn this paper we defineltabstractgt9 ltmotsClesgt
10 lttermegtIngeacutenierie des connaissanceslttermegt11 lttermegtXMLlttermegt12 lttermegtDocumentlttermegt13 ltmotsClesgt14 ltkeywordsgt15 ltwordgtKnowledge engineeringltwordgt16 ltwordgtXMLltwordgt17 ltwordgtDocumentltwordgt18 ltkeywordsgt19 ltpublication date=2004-07-05gt20 ltversion maj=1 min=0gt21 ltressource
uriSrc=httparchivesicccsdcnrsfrdocs00062397PDFsic_00001015pdfgt
22 ltpapiergt
lt--transfxsl--gt
ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gt
ltxsloutput method=textgt
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 35
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
ltxsltemplate match= gt
ltxslapply-templates select= gt
ltxsltemplategt
ltxsltemplate match= gt
(terme titre url) (
ltxslvalue-of select= gt
ltxslvalue-of select= gt
ltxslvalue-of select= gt
)
ltxsltemplategt
ltxslstylesheetgt
B SAX et DOM
1 Introduction agrave SAX et illustration avec Java
SAX est lacronyme de Simple API for XML
SAX est une API qui sert agrave parcourir un fichier XML elle se base sur deseacuteveacutenements deacuteclencheacutes durant la lecture du flux (balise ouvrante balisefermante)
Deacuteveloppeacutee pour plusieurs langages de programmation (JAVA C++ PHPPerl )
Tregraves utiliseacute pour les documents tregraves lourds car il neacutecessite moins demeacutemoire que les autres API
Deacutefinition PrincipeLa premiegravere interface intituleacutee ContentHandler permet danalyser le flux entrantagrave laide des eacuteveacutenements Il suffit de redeacutefinir les fonctions pour avoir lecomportement souhaiteacute
Fondamental Gestion dun eacuteleacutementUn eacuteleacutement correspond agrave des balises notamment une balise ouvrante et une balisefermante
startElement est deacuteclencheacutee au deacutemarrage dun eacuteleacutement XML (baliseouvrante) elle a plusieurs paramegravetres dont lespace de nommage le nom dela balise et les attributs de cette balise sils existent
endElement est deacuteclencheacutee agrave la fin du traitement dune balise
1 public void startElement(String uri String localName String rawName Attributes atts) throws SAXException
2 Systemoutprintln(Ouverture de la balise + localName)3 45 public void endElement(String uri String localName String qName)
throws SAXException 6 Systemoutprint(Fermeture de la balise + localName)
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)36
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
7
Exemple Gestion du deacutebut et de la fin dun documentDans linterface ContentHandler ces eacuteveacutenements sont geacutereacutes par les deuxfonctions startDocument et endDocument
La fonction startDocument est la premiegravere fonction qui est appeleacutee parmitoutes les autres
De mecircme endDocument est la derniegravere fonction qui est appeleacutee agrave la fin delanalyse
1 public void startDocument() throws SAXException 2 Systemoutprintln(Debut de lanalyse du document)3 45 public void endDocument() throws SAXException 6 Systemoutprintln(Fin de lanalyse du document )7
2 Principes du DOM
DeacutefinitionLe DOM ( Document Object Model) est un standard W3C qui deacutecrit une API orienteacuteeobjet permettant de repreacutesenter un document XML ou HTML en meacutemoire afin de lamanipuler avec un langage de programmationLe standard DOM est indeacutependant dun langage de programmation en particulier etimpleacutementeacute dans de nombreux langages (JavaScript Java PHP C )laquo The Document Object Model is a platform- and language-neutral interface thatwill allow programs and scripts to dynamically access and update the contentstructure and style of documents raquo httpwwww3orgDOM7
Fonctions du DOMLAPI DOM permet de
Parcourir un arbre XML ou HTML
Rechercher des nœuds particuliers en consulter le contenu
Creacuteer ajouter supprimer deacuteplacer des nœuds dans larbre
ExempleLAPI DOM impleacutementeacutee en JavaScript permet de manipuler un document HTML ouXHTML afin den modifier dynamiquement (en fonction des actions utilisateurs) lastructure et le contenu
Faire apparaicirctre ou disparaicirctre des eacuteleacutements div en fonction dune actionutilisateur
Creacuteer ou initialiser des controcircles de formulaire
1 function fDisplay(pDivId) 2 var vDiv = documentgetElementById(pDivId)
7 - httpwwww3orgDOM
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 37
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
3 vDivstyledisplay=block4
RappelLarbre du document XML
3 Fonctions et objets DOM en JavaScript
Exemple
1 vDiv = documentgetElementById(id1)
Exemple
1 vDivs = documentgetElementsByTagName(p)2 for (var i=0 iltvDivslength i++) 3 vDivsitem(i)4
Exemple
1 alert(vDivfirstChilddata)
Exemple
1 vDivremoveChild(vDivfirstChild)
Exemple
1 vDivappendChild(vDiv2)
Syntaxe Document
httpfrselfhtmlorgjavascriptobjetsdocumenthtm8
Node
httpfrselfhtmlorgjavascriptobjetsnodehtm9
getElementById
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id10
getElementByTagName
httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name11
firstChild
8 - httpfrselfhtmlorgjavascriptobjetsdocumenthtm9 - httpfrselfhtmlorgjavascriptobjetsnodehtm10 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_element_by_id11 - httpfrselfhtmlorgjavascriptobjetsdocumenthtmget_elements_by_tag_name
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)38
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child12
data
httpfrselfhtmlorgjavascriptobjetsnodehtmdata13
12 - httpfrselfhtmlorgjavascriptobjetsnodehtmfirst_child13 - httpfrselfhtmlorgjavascriptobjetsnodehtmdata
Manipulations
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 39
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
VI - Compleacutements VI
Preacuteambule XML selon le W3C 41
Historique de SGML agrave XML 42
Discussion HTML et XML 43
Commentaires 46
Namespace 48
Syntaxe XML et espaces 52
Encodage des caractegraveres 53
Exemple Un programme XSLT pour geacuteneacuterer du HTML 53
A Preacuteambule XML selon le W3C
XML est un standard du W3C Extensible Markup Language (XML) 10 (FifthEdition) [w_w3corgTR2008REC-xml]Les deacutefinitions suivantes sont directement copieacutees du site du W3C[w_w3corgXML] (novembre 2009)
Deacutefinition What is XMLThe Extensible Markup Language (XML) is a simple text-based format forrepresenting structured information documents data configuration bookstransactions invoices and much more It was derived from an older standardformat called SGML (ISO 8879) in order to be more suitable for Web use
Deacutefinition What is XML Used ForXML is one of the most widely-used formats for sharing structured informationtoday between programs between people between computers and people bothlocally and across networks
Exemple Extrait dun lexique
1 ltlexiquegt2 3 ltentree id=1976gt4 ltmotgtEssuie-glaceltmotgt5 ltdescriptiongtLessuie-glace retire automatiquement la pluie du
ltvoirAussi ref=1965gtpare-briseltvoirAussigt lorsquelle tombe dessus Il possegravede une ltvoirAussi ref=1977gtlame caoutchouteacuteeltvoirAussigt qui peut ecirctre changeacutee seacutepareacutement en cas de
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 41
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
besoinltdescriptiongt6 ltentreegt7 ltentree id=1977gt8 ltmotgtLame caoutchouteacuteeltmotgt9
10 ltentreegt11 12 ltlexiquegt
B Historique de SGML agrave XML
SGMLXML heacuterite historiquement (et fonctionnellement) du meacuteta-langage SGMLdeacuteveloppeacute au deacutebut des anneacutees 1980 et largement utiliseacute dans le cadre dessystegravemes documentaires notamment dans les industries de hautes technologiespour lesquelles la fiabiliteacute de la documentation est cruciale SGML restait unformalisme insuffisamment explicite et trop complexe ce qui rendait difficile laprogrammation dapplications SGML dans des cadres plus larges SGML laissaitnotamment des ambiguiumlteacutes en terme dinterpreacutetation du balisage XML est unlangage respectant la syntaxe SGML mais en y ajoutant des contraintessuppleacutementaires afin den lever les ambiguiumlteacutes
A lorigine SGML - norme ISO (1986) creacuteeacute pour la repreacutesentation de documents structureacutes- bien adapteacute aux systegravemes documentaires massifs- exemple de langage SGML HTML
Un formalisme pas assez explicite - rend difficile la programmation dapplications SGML (navigateurs etc)- XML (98) heacuterite de SGML en contraignant la syntaxe
Exemple Ambiguiumlteacute en SGMLEn SGML une balise ouvrante nest pas obligatoirement fermeacutee par une balisefermante (sa fermeture pouvant rester implicite) tandis quen XML toute baliseouvrante est obligatoirement fermeacutee Le code SGML ltAgtltBgtltBgt est ambigu car on ne sait pas sil faut linterpreacutetercomme
ltAgtltAgtltBgtltBgt ou
ltAgtltBgtltBgtltAgt
En XML seule lune des deux formulations non ambigueumls est autoriseacutee
Exemple HTML est un langage SGML
DocBook est agrave lorigine un langage SGML porteacute depuis en XML
FondamentalXML heacuterite de SGML en contraignant la syntaxe tout document XML est donc undocument SGML
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)42
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
C Discussion HTML et XML
Fondamental XML et HTML ne sont pas au mecircme niveauXML est un meacuteta-langage et HTML est un langage XML et HTML ne sont donc pasdirectement comparables En particulier XHTML est un langage XML cest donc duXML
XML et le WebUne question pertinente est en revanche de se demander pourquoi HTML ou XHTMLne suffisent pas pour les usages Web et donc pourquoi XML est utile en dehors deson instanciation via XHTMLLa reacuteponse est que si HTML et a fortiori XHTML fournissent une solution depublication efficiente ils noffrent pas le mecircme potentiel en terme dingeacutenieriedocumentaire XML possegravede donc un potentiel de manipulation plus important(par exemple pour le multi-supports la reacuteeacuteditorialisation )
Exemple Exemple de limites du HTMLLe HTML langage de reacutefeacuterence du web qui a su simposer par sa simpliciteacutedeacutecriture possegravede eacutegalement des inconveacutenients qui ont motiveacute les recherches duW3C sur le XML
Jeu de balises restreint HTML est un langage les balises sont deacutefinies apriori il est impossible de deacutefinir ses propres balises et de creacuteer unvocabulaire propre agrave un domaine speacutecifique Ce manque dextensibiliteacute lerend mal approprieacute pour lindexation de documents varieacutes le multimeacutedia
Meacutelange des descripteurs physiques et logiques Les balises HTMLfournissent des informations relatives agrave la typographie ou la mise en pagedun texte (CENTER B ) mais eacutegalement relatives agrave son rocircle dans ledocument (H1 H2 ) Cette non seacuteparation stricte entre contenu etpreacutesentation nuit agrave la publication multi-supports et la reacuteeacuteditorialisation parexemple
Liens En HTML les liens sont geacuteneacuteralement des pointeurs directs vers uneautre ressource (A) Cette mise en œuvre limite fortement les possibiliteacutes dereacuteutilisation notamment par le risque de lien casseacute
Compleacutement Voir aussiDocuments structureacutes et documents formateacutes - p65
D Commentaires
SyntaxeUn fichier XML peut contenir des commentaires ils peuvent ecirctre inseacutereacutes nimporteougrave dans le document avec la syntaxe lt-- Ceci est un commentaire --gt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 43
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple
1 ltdocumentgt2 Ceci est un contenu 3 lt-- Ceci est un commentaire --gt4 ltdocumentgt
E Namespace
PrincipeUn namespace (ou espace de noms en franccedilais) est une meacutecanique qui permetdassurer luniciteacute des noms des eacuteleacutements utiliseacutes au sein des fichiers XML danslobjectif de pouvoir laquo meacutelanger raquo diffeacuterents scheacutemas
Soit un extrait de scheacutema S1 qui deacutefinit un eacuteleacutement de syntaxe eninformatique comme contenant du code element syntaxe code
Soit un extrait de scheacutema S2 qui deacutefinit un eacuteleacutement de syntaxe enmatheacutematique comme contenant une eacutequation element syntaxeequation
Si je souhaite dans un scheacutema S3 reacuteutiliser les eacuteleacutements syntaxe issus de S1 etS2 je rencontre un conflit de noms en effet deux eacuteleacutements portant le mecircmenom laquo syntaxe raquo deacutefinissent en fait des eacuteleacutements diffeacuterents Le namespace va me permettre de diffeacuterencier ces deux eacuteleacutements en associant unnom unique aux scheacutemas S1 et S2 par exemple une adresse web Si jassocie wwwutcfrS1 au premier scheacutema et wwwutcfrS2 au secondjobtiens alors deux noms de balises diffeacuterents
wwwutcfrS1syntaxe
wwwutcfrS2syntaxe
PreacutefixeCette eacutecriture eacutetant quelque peu fastidieuse il est eacutegalement possible dassocier unpreacutefixe au namespace La correspondance entre le namespace et le preacutefixe estdeacuteclareacutee dans le fichier XML ce qui permet agrave un programme informatique deremplacer les preacutefixes par les namespaces Finalement on obtient
Preacutefixe s1 associeacute au namespace wwwutcfrS1 et eacutecriture XML s1syntaxe
Preacutefixe s2 associeacute au namespace wwwutcfrS2 et eacutecriture XML s2syntaxe
Remarque Namespace par deacutefautIl est possible de deacutefinir un namespace par deacutefaut ce qui permet davoir unnamespace pour chaque balise sans avoir agrave utiliser de preacutefixe
Syntaxe
1 ltelementRacine 2 xmlnsprefixe1=namespace1 3 xmlnsprefixe2=namespace2 4 xmlnsprefixeN=namespaceN 5 xmlns=namespaceDesEacuteleacutementsNonPreacutefixeacutes
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)44
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
6 gt
Deacutefinition Nom deacuteveloppeacuteUn nom deacuteveloppeacute (expanded name) est le couple constitueacute par un nomdespace de nommage (namespace name) et par un nom local (local name)
Compleacutement httpwwww3orgTR2004REC-xml-names11-2004020414
Traduction httpwwwyoyodesignorgdocw3cxml-names1115
F Syntaxe XML et espaces
Soit les trois syntaxes XML suivantes (les espaces sont symboliseacutes par des ~ et lesretours chariot par des sect)
1 ltagtbonjour~aurevoirltagtltbgt 2 ltagtbonjour~~~~aurevoirltagtltbgt 3 ltagtbonjoursect
aurevoirltagt~~~~ltbgt 4 ltagtbonjour~aurevoirltagtsect
ltbgt
Ces trois syntaxes sont logiquement eacutequivalentes Donc
Agrave linteacuterieur dun eacuteleacutement qui ne contient que du texte 1 espace = Nespaces = 1 retour chariot = N retours chariot
Entre deux eacuteleacutements 1 espace = N espaces = 1 retour chariot = N retourschariot = Rien (absence de caractegravere)
Dans la pratique seuls les cas de mixed content ont besoin que les espaces soientpreacuteserveacutes Les deux exemples ci-apregraves ne sont pas eacutequivalents
ltpgtCeci est ltigtimportantltigtltpgt ltpgtCeci estltigtimportantltigtltpgt
Mais sans scheacutema il est impossible de deacutecider a priori si le contenu dun eacuteleacutement quicontient des eacuteleacutements fils et des espaces est mixed ou si ces espaces servent justeagrave la mise en forme du XML
Espaces conserveacutesPar deacutefaut un programme doit consideacuterer que tous les espaces sont signifiants etdoivent ecirctre conserveacutes lors des traitements
Remarque Eacutequivalence entre seacuteparateursXML considegravere comme eacutequivalents les caractegraveres de seacuteparation
Espace
Tabulation t
Retour chariot r
Fin de ligne n
14 - httpwwww3orgTR2004REC-xml-names11-2004020415 - httpwwwyoyodesignorgdocw3cxml-names11
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 45
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
G Encodage des caractegraveres
Lencodage des caractegraveres deacutefinit leacutequivalence entre des caractegraveres et leur valeurnumeacuterique en machineLASCII est lancecirctre et la base de tous les systegravemes dencodage actuels il deacutefinitpar exemple que la lettre A agrave la valeur 65Lencodage universel Unicode UTF-8 est supporteacute par XML et aujourdhui la plupartdes outils informatiques associeacutes il est agrave utiliser dans le cas geacuteneacuteral
H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Exemple Fichier XML source
1 ltxml version=10 encoding=iso-8859-1gt2 ltdocument titre=XSLTgt34 lt--Premiegravere division--gt56 ltdiv titre=XSLT Un besoingt7 ltparagraphegtXML est un format de
ltimportantgtrepreacutesentationltimportantgt de linformationltparagraphegt8 ltparagraphegtXML nest pas un format de preacutesentationltparagraphegt9 ltdivgt
1011 lt--Seconde division--gt1213 ltdiv titre=XSLT Un langagegt14 ltparagraphegtXSLT est un langage de
ltimportantgtmanipulationltimportantgt de documents XMLltparagraphegt15 ltparagraphegtXSLT est utiliseacute pour exporter une source XML sous un
autre format par exemple HTMLltparagraphegt16 ltdivgt17 ltdocumentgt
Exemple Fichier HTML cible souhaiteacute
1 ltHTMLgt23 lt--Head--gt45 ltHEAD6 ltTITLEgtXSLTltTITLEgt7 ltMETA content=texthtml charset=iso-8859-1gt8 ltHEADgt9
10 lt--Body--gt1112 ltBODYgt13 ltH1gtXSLT Un besoinltH1gt14 ltPgtXML est un format de ltBgtrepreacutesentationltBgt de linformationltPgt15 ltPgtXML nest pas un format de preacutesentationltPgt16 ltH1gtXSLT Un langageltH1gt17 ltPgtXSLT est un langage de ltBgtmanipulationltBgt de documents XMLltPgt18 ltPgtXSLT est utiliseacute pour exporter une source XML sous un autre
format par exemple HTMLltPgt19 ltBODYgt20 ltHTMLgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)46
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Programme XSLT permettant la transformation
1 ltxml version=10 encoding=iso-8859-1gt2 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt3 ltxsloutput method=html indent=yes encoding=iso-8859-1gt45 lt--1egravere regravegle--gt67 ltxsltemplate match=documentgt8 ltHTMLgt9 ltHEAD
10 ltTITLEgtltxslvalue-of select=titregtltTITLEgt11 ltMETA content=texthtml charset=iso-8859-1gt12 ltHEADgt13 ltBODYgt14 ltxslapply-templatesgt15 ltBODYgt16 ltHTMLgt17 ltxsltemplategt1819 lt--2nde regravegle--gt2021 ltxsltemplate match=divgt22 ltH1gtltxslvalue-of select=titregtltH1gt23 ltxslapply-templatesgt24 ltxsltemplategt2526 lt--3egraveme regravegle--gt2728 ltxsltemplate match=paragraphegt29 ltPgtltxslapply-templatesgtltPgt30 ltxsltemplategt3132 lt--4egraveme regravegle--gt3334 ltxsltemplate match=importantgt35 ltBgtltxslvalue-of select=gtltBgt36 ltxsltemplategt37 ltxslstylesheetgt
Compleacutements
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 47
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Solution des exercices
gt Solution ndeg1 (exercice p 9)
Exercice
XML a eacuteteacute creacuteeacute dans la continuiteacute du SGML
XML est une norme ISO
XML est un standard W3C
XML est plus reacutecent que HTML
Exercice
HTML est un langage de mise en forme
XML est un langage de mise en forme
HTML deacutefinit un jeu de balises fixeacute a priori et donc non-extensibles
XML est beaucoup plus geacuteneacuterique il permet de deacutefinir des langages
Exercice
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 49
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Un entecircte XML
Une reacutefeacuterence agrave une DTD
Une reacutefeacuterence agrave un XML Schema
Une unique balise racine qui encadre toutes les autres
Que chaque balise ouverte soit fermeacutee
Exercice
Dindiquer la mise en page pour un type de document et un format cible
De veacuterifier automatiquement quun document correspond agrave une structuretype
De deacutefinir une grammaire documentaire
gt Solution ndeg2 (exercice p 10)
Meacuteta-langage XMLSGML
Format de publication XML SVGSMILXHTMLOpen Document Format
Format de publication SGML HTML
Langage de structuration documentaire DocBook
Organisme de standardisation W3COASIS
gt Solution ndeg3 (exercice p 17)
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)50
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Ce fichier nest pas un fichier XML
Ce fichier est un fichier XML il possegravede un eacuteleacutement racine unique qui contienttous les autresIl sagit de papier
Ce fichier est un fichier XML tous ses eacuteleacutements sont inclus dans les uns dansles autresIl ny a pas de balises croiseacutees du type ltagtltbgtltagtltbgt
Ce fichier est un fichier XML toutes ses balises ouvertes sont fermeacutees
Ce fichier est un fichier SGMLTous les fichiers XML sont des fichiers SGML car XML est un sous-ensemblede SGML cest agrave dire que XML est un meacuteta-langage plus restrictif que SGML
gt Solution ndeg4 (exercice p 18)
ltxml version=10gtltdocumentgt ltentetegt lttitregtDocument agrave corrigerlttitregt ltauteurgtSteacutephane Crozatltauteurgt ltdategt01-03-01ltdategt ltversion numero=1gtltentetegt ltcorpsgt ltdivision titre=Premiegravere partiegt ltparagraphegtCe texte doit ecirctreltimportantgtcorrigeacuteltimportantgtltparagraphegt ltparagraphegtLe contenu estsans importance iciltparagraphegt ltdivisiongt ltdivision titre=Seconde partiegt ltparagraphegtAi-je le droit de mettre du texte ici ltparagraphegtltdivisiongt ltcorpsgt ltdocumentgt
gt Solution ndeg5 (exercice p 18)
ltdocAbstraitgtltcontenugtltparagraphegtLorem ipsum dolor sit amet consectetur adipiscingelitltparagraphegtltTextegtNulla erat tellus molestie a ultrices sed gravida eget ipsumltparagtPhasellus lacinia ipsum vitae interdum tinciduntltPgtNullam pulvinar diam et tellus ullamcorpereleifendltPgtltparagtltTextegtltcontenugt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 51
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
ltlignegtNunc eu lectus in diam tempus adipiscing in rhoncuselitltlignegtltdocAbstraitgtLes balises doivent ecirctre fermeacutees dans lordre dans lequel elles sont ouvertes pourque chaque eacuteleacutement soit inclus dans son pegravere La syntaxe XML est sensible agrave lacasse P est diffeacuterent de p
gt Solution ndeg6 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltentetegt
gt Solution ndeg7 (exercice p 25)
Oui
gt Solution ndeg8 (exercice p 25)
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregt5 ltdategt6 ltauteurgt7 ltentetegt
gt Solution ndeg9 (exercice p 25)
Exemple
1 ltxml version=10gt2 ltDOCTYPE entete SYSTEM entetedtdgt3 ltentetegt4 lttitregtMon documentlttitregt5 ltdategtAujourdhuiltdategt6 ltauteurgtMoiltauteurgt7 ltmotsclesgtDocumentltmotsclesgt8 ltresumegt9 ltparagraphegtMon reacutesumeacuteltparagraphegt
10 ltresumegt11 ltentetegt
gt Solution ndeg10 (exercice p 33)
1 titre 2 papiertitre 3 titre 4 precedingtitre
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)52
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
gt Solution ndeg11 (exercice p 35)
lt--transfxsl--gtltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransformversion=10gtltxsloutput method=textgtltxsltemplate match=papiergtltxslapply-templates select=motsClestermegtltxsltemplategtltxsltemplate match=termegtINSERT INTO tMotsCles (terme titre url) VALUES (ltxslvalue-of select=gtltxslvalue-of select=titregtltxslvalue-of select=ressourceuriSrcgt)ltxsltemplategtltxslstylesheetgt
1 ltxml version=10 encoding=UTF-8gt2 lt--transfxsl--gt3 ltxslstylesheet xmlnsxsl=httpwwww3org1999XSLTransform
version=10gt4 ltxsloutput method=textgt5 ltxsltemplate match=papiergt6 ltxslapply-templates select=motsClestermegt7 ltxsltemplategt8 ltxsltemplate match=termegt9 INSERT INTO tMotsCles (terme titre url) VALUES (
10 ltxslvalue-of select=gt11 ltxslvalue-of select=titregt12 ltxslvalue-of select=ressourceuriSrcgt13 )14 ltxsltemplategt15 ltxslstylesheetgt
Solution des exercices
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 53
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Glossaire
Seacuterialisation
Processus consistant agrave enregistrer des donneacutees en meacutemoire vive (par exemple desobjets) sous une forme permettant leur persistance typiquement sur une meacutemoiresecondaire
XSL-FO
XSL-FO (FO pour Formatting Objects) est la seconde partie du standard W3Claquo Extensible Stylesheet Language Family raquo Il propose un langage XML de mise enforme de documents imprimablesExemple dextrait de code FO
ltfoblock font-family=Times font-size=12ptgtCeci est un paragraphe enpolice Times de taille 12ptltfoblockgt
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 55
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Signification des abreacuteviations
- HTML HyperText Markup Language
- W3C World Wide Web Consortium
- XML eXtensible Markup Language
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 57
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Bibliographie
[(Dupoirier 1995)] GEacuteRARD DUPOIRIER Technologie de la GED Techniques et management desdocuments eacutelectroniques Hermes 1995
[Andreacute89] JACQUES ANDREacute RICHARD FURUTA VINCENT QUINT Structured documents Cambridge UniversityPress 1989
[Brillant07] ALEXANDRE BRILLANT XML Cours et exercices Eyrolles 2007 [ISBN 978-2212126914]
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 59
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Webographie
[w_w3corgTR2008REC-xml] W3C Extensible Markup Language (XML) 10 (Fifth Edition)httpwwww3orgTR2008REC-xml-20081126 consulteacute en 2008
[w_w3corgXML] XML httpwwww3orgXML
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 61
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Index
Attribut p20 26Balise p11Bien formeacute p19DTD p26Eleacutement p26
HTML p43JAVA p36Meacuteta-langage p12SAX p36SGML p42
Syntaxe p7 21 22Valide p26W3C p41XML p11 Error Reference source not
found 11 12 36 41
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 63
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Contenus annexes
- Balises et poigneacutees de calcul
Lingeacutenierie documentaire met agrave profit deux thegraveses compleacutementaires le contenu est numeacuteriseacute dans sa forme signifiante il est manipulable par la
machine mais indeacutependamment du sa signification qui lui reste inaccessible le contenu est enrichi par des balises qui sont connues syntaxiquement et
seacutemantiquement par la machine elle sait quoi en faire
FondamentalLe principe du balisage consiste agrave enrichir un contenu numeacuteriseacute (dans sa formeseacutemiotique) sans lalteacuterer pour lui ajouter des poigneacutees qui vont ecirctre manipulablespar lordinateur (logiquement)
RemarqueLe contenu est donc interpreacutetable par lhomme et la machine chacun via ce qui luiest destineacute
lhumain interpregravete le contenu signifiant numeacuteriseacute
la machine interpregravete les balises
Exemple XMLXML est une illustration de ce principe puisque lon va coupler une informationseacutemiotique (texte image etc) destineacutee agrave linterpreacutetation humaine avec unensemble de balises qui permettent de deacutecrire formellement une structuredocumentaire qui sera alors manipulable par le calcul
- Documents structureacutes et documents formateacutes
Deacutefinition Document formateacuteOn appelle document formateacute un document dont le fichier informatique sourcedeacutecrit la faccedilon de le mettre en forme Cest la faccedilon la plus courante de traiter avecles documents informatiques telle quelle est mise en œuvre dans les traitementsde texte ou sur le Web avec HTMLUn document formateacute neacutecessite un logiciel capable den interpreacuteter le format pourpermettre de le lireXML est un excellent candidat agrave la seacuterialisation de documents formateacutes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 65
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Document formateacute (format OpenDocument extrait simplifieacute )
1 ltdocument-contentgt2 ltautomatic-stylesgt3 ltstyle name=P1 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=12ptgtltstylegt4 ltstyle name=P2 family=paragraphgtlttext-properties font-
name=Times New Roman fofont-size=16pt fofont-weight=boldgtltstylegt
5 ltstyle name=P3 family=paragraphgtltparagraph-properties fotext-align=centergtlttext-properties font-name=Times New Roman fofont-size=18pt fofont-weight=bold gtltstylegt
6 ltstyle name=P4 family=paragraphgtlttext-properties font-name=Times New Roman fofont-size=12pt fofont-style=italicgtltstylegtltstyle name=T1 family=textgtlttext-properties font-name=Verdanagtltstylegt
7 ltautomatic-stylesgt8 ltbodygt9 lttextgt
10 ltp style-name=P2gtAs We May Thinkltpgt11 ltp style-name=P1gtltspan style-name=T1gtBy Vannevar
Bushltspangtltpgt12 ltp style-name=P4gtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltpgt13 ltp style-name=P1gtThis has not been a scientists war ltpgt14 ltp style-name=P3gt1ltpgt15 ltp style-name=P1gtOf what lasting benefit has been mans use of
science ltpgt16 ltp style-name=P3gt2ltpgt17 ltp style-name=P1gtA record if it is to be useful to
science ltpgt18 lttextgt19 ltbodygt20 ltdocument-contentgt
Visualisation dans OpenOfficeorg Writer de lextrait de larticle As We May Think
Deacutefinition Notion de documents structureacutesOn appelle document structureacute un document dont la structure logique est deacutecriteplutocirct que la mise en forme physique (Structured documents [Andreacute89] p7)Apregraves SGML qui avait eacuteteacute inventeacute pour cela XML est aujourdhui le candidat quasi-unique pour la reacutealisation de documents structureacutes
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)66
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple Document structureacute (format DocBook leacutegegraverement simplifieacutee)
1 ltarticle xmlns=httpdocbookorgnsdocbookgt2 ltinfogt3 lttitlegtAs we may thinklttitlegt4 ltauthorgtltpersonnamegtVannevar Bushltpersonnamegtltauthorgt5 ltinfogt6 ltepigraphgtltparagtAs Director of the Office of Scientific Research
and Development Dr Vannevar Bush ltparagtltepigraphgt7 ltparagtThis has not been a scientists war ltparagt8 ltsect1gt9 ltparagtOf what lasting benefit has been mans use of
science ltparagt10 ltsect1gt11 ltsect1gt12 ltparagtA record if it is to be useful to science ltparagt13 ltsect1gt14 ltarticlegt
Deacutefinition Transformation des documents structureacutesUn document structureacute nest pas destineacute agrave ecirctre directement utiliseacute pour la lecturehumaine il doit ecirctre dabord transformeacute dans un document formateacute pour ecirctre utiliseacute(visualiseacute imprimeacute )
Processus de transformation dun document structureacute en document formateacute
Remarque Chaicircne XML complegraveteLa technologie XML peut en fait ecirctre utiliseacutee tout au long de la chaicircne
Langage XML orienteacute document structureacute en amont (DocBook DITA TEIlangage local )
Langage XML de programmation pour la transformation (XSL-XSLT)
Langage XML orienteacute document formateacute pour laval (OpenDocument XHTML)
Compleacutement Voir aussiLa structuration logique - p68
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 67
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Exemple de structuration logique - p69Architecture des chaicircnes eacuteditoriales XML - p70Un langage pour publier les documents XML - p70Deacutefinition de XSL-XSLT
Compleacutement BibliographieTechnologie de la GED [(Dupoirier 1995)] Structure logique et structure physique(pp58-61)
- La structuration logique
Un document peut ecirctre deacutecrit comme une collection dobjetscomportant des objets de plus haut niveau composeacutes dobjets plusprimitifs Les relations entre ces objets repreacutesentent les relationslogiques entre les composants du document Par exemple [] unlivre est diviseacute en chapitres chaque chapitre en sections sous-sections paragraphes etc Une telle organisation documentaireest appeleacutee repreacutesentation de document structureacute (traduitdepuis la preacuteface de Structured documents)
Deacutefinition Structuration logiqueOn appelle structuration logique dun contenu une inscription explicitant la structurede ce contenu en fonction de son organisation et des attributs intrinsegraveques qui lecaracteacuterisent et non en fonction de proprieacuteteacutes de preacutesentation sur un support
Deacutefinition Document abstraitUn document deacutecrit par sa structure logique est appeleacute document abstrait on parleaussi de document structureacute
Deacutefinition Structuration physiqueOn appelle structuration physique ou mise en forme dun contenu une inscriptiondeacutecrivant la faccedilon dont ce contenu doit ecirctre preacutesenteacute sur un support donneacute
Deacutefinition Document formateacuteUn document deacutecrit par sa structure physique est appeleacute document formateacute cesten geacuteneacuteral eacutegalement ce dont on parle quand on parle simplement de document
RemarqueIl est possible de calculer une ou plusieurs structurations physiques pour une mecircmestructuration logique Il est possible de calculer dautant plus de structurationsphysiques que la structuration logique est indeacutependante de ses supports depreacutesentation
RemarqueLa structuration logique est associeacutee au fond du contenu tandis que la structuration
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)68
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
physique est associeacutee agrave sa forme sur un support
Compleacutement Voir aussiLangages XML orienteacute documents
- Exemple de structuration logique
Exemple Un exercice structureacute logiquementSoit la structuration logique dun exercice
1 Exercice = Enonce Question Indice Solution 2 avec 3 Enonce = Soit un triangle rectangle disposant dun angle de 30
degreacutes 4 Question = Donner la valeur des autres angles du triangle5 Indice = La somme des angles dun triangle est eacutegale agrave 180 degreacutes6 Solution = 90 et 60 degreacutes
Il est possible agrave partir de cette repreacutesentation de calculer diffeacuterentes preacutesentationsPour leacutecran on peut geacuteneacuterer une preacutesentation HTML en laissant la solution enhyperlien cliquable Pour le papier on peut geacuteneacuterer une preacutesentation PDF enaffichant la solution sur une page seacutepareacutee de leacutenonceacute Pour un usage multimeacutediaon pourra geacuteneacuterer une preacutesentation SMIL avec affichage de leacutenonceacute lecture de laquestion et affichage de la solution apregraves un temps de pause Notons que si lon avait choisi une des repreacutesentations physiques plutocirct que larepreacutesentation logique il naurait pas eacuteteacute possible de geacuteneacuterer les autresrepreacutesentations
Exemple Un exercice mis en formeSoit la mise en forme en HTML du mecircme exercice
1 ltHTMLgt 2 ltBODYgt 3 Soit un triangle rectangle disposant dun angle de 30 degreacutes ltBRgt4 ltBgt Donner la valeur des autres angles du triangle ltBgt ltBRgt5 ltA HREF=ex001i01htmlgt Vous avez besoin daide ltAgt ltHRgt6 ltA HREF=ex001s01htmlgt Veacuterifier votre reacuteponse ltAgt 7 ltBODYgt 8 ltHTMLgt
On voit que dans ce format la structure logique napparaicirct plus explicitement et quilnest plus possible didentifier leacutenonceacute la question et la solution sans comprendrele contenu
FondamentalLexemple montre que lon peut calculer la mise en forme agrave partir de la structurelogique mais non linverse
- Architecture des chaicircnes eacuteditoriales XML
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi) 69
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70
Architecture classique
Graphique 1 Architecture classique dune chaicircne eacuteditoriale XML
Lapproche classique pour reacutealiser une chaicircne eacuteditoriale XML est la suivante 1 Formalisation du scheacutema documentaire avec un langage de modeacutelisation de
scheacutema XML (XML Schema Relax NG etc) 2 Utilisation dun eacutediteur XML standard et stylage de cet eacutediteur (il existe de
tregraves nombreux eacutediteurs XML plus ou moins graphiques qui se paramegravetrentautomatiquement lorsquon leur fournit un scheacutema Oxygen XMetal EpicArbortext etc)
3 Utilisation de serveurs de fichiers XML pour la gestion centraliseacutee descontenus (pour les projets les plus importants surtout)
4 Reacutealisation de moteurs de transformation avec les technologies XSL-XSLTcombineacutees avec des langages de rendu (XSL-FO pour le papier XHTMLpour leacutecran etc)
Lensemble est en geacuteneacuteral inteacutegreacute avec un langage applicatif tiers (Java PHP etc)
- Un langage pour publier les documents XML
XML lorsquil est utiliseacute pour deacutefinir des formats documentaire meacutetier est un formatde repreacutesentation de linformation et non un format de publication (depreacutesentation) de cette information donc un tel fichier XML nest pas utilisabletel que par un lecteur XML ne peut donc ecirctre utiliseacute pour des langages abstrait que si lon est capable detransformer les documents sources en document publieacutes lisibles gracircce agrave un formatde preacutesentation HTML par exemple dans le cas de publication Web ou PDF pourlimpression
- Caracteacuteristiques rechercheacutees pour un format XML
Fondamental Non ambiguiumlteacuteLes regravegles syntaxiques strictes dXML rendent son interpreacutetation informatiqueunivoque
Fondamental LisibiliteacuteUn format XML a pour objectif decirctre lisible par un ecirctre humain afin de plusfacilement en appreacutehender le langage
Fondamental PassiviteacuteUn format XML est passif il deacutepend de programmes informatiques qui letransforment
Contenus annexes
Steacutephane Crozat (Contributions Bruno Bachimont Erik Gebers Mourad Saadi)70