70
LO17 https://stph.scenari- community.org Introduction à XML : principes, syntaxe, schémas et manipulations Paternité - Partage des Conditions Initiales à l'Identique : http://creativecommons.org/licenses/by-sa/2.0/fr/ STÉPHANE CROZAT 19 février 2016

Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

Embed Size (px)

Citation preview

Page 1: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 2: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 3: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 4: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 5: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 6: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 7: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 8: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 9: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 10: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 11: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 12: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 13: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 14: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 15: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 16: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 17: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 18: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 19: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 20: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 21: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 22: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 23: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 24: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 25: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 26: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 27: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 28: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 29: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 30: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 31: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 32: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 33: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 34: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 35: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 36: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 37: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 38: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 39: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 40: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 41: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 42: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 43: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 44: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 45: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 46: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 47: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 48: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 49: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 50: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 51: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 52: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 53: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 54: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 55: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML
Page 56: Introduction à XML : principes, syntaxe, schémas et … · Structure générale d'un fichier XML.....21 6. Exemple de fichier XML - Le courriel ... XML en tant que méta-langage

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

  • A Exercices Culture XML
    • 1 Exercice
    • 2 Exercice Galaxie XML
      • B XML leXtensible Markup Language
        • 1 Deacutefinition du XML
        • 2 XML un langage agrave balise
        • 3 XML un meacuteta-langage
        • 4 Langages standard et langages locaux
        • 5 Langages XML orienteacutes donneacutees
        • 6 Langages XML orienteacutes documents
          • A Exercices Syntaxe XML
            • 1 Exercice
            • 2 Exercice
            • 3 Exercice
              • B Syntaxe de base XML
                • 1 Document bien formeacute
                • 2 Balise
                • 3 Eacuteleacutement
                • 4 Attribut
                • 5 Structure geacuteneacuterale dun fichier XML
                • 6 Exemple de fichier XML - Le courriel
                • 7 La syntaxe XML en reacutesumeacute
                  • A Une DTD
                  • B Introduction aux scheacutemas XML
                    • 1 Notion de document valide
                    • 2 Document Type Definition
                    • 3 W3C XML Schema
                    • 4 Regular Language for XML Next Generation
                      • A XPath et XSLT
                        • 1 Larbre du document XML
                        • 2 Introduction agrave XPath
                        • 3 Exercice
                        • 4 Deacutefinition de XSL-XSLT
                        • 5 Principe de XSL-XSLT
                        • 6 Exercice
                          • B SAX et DOM
                            • 1 Introduction agrave SAX et illustration avec Java
                            • 2 Principes du DOM
                            • 3 Fonctions et objets DOM en JavaScript
                              • A Preacuteambule XML selon le W3C
                              • B Historique de SGML agrave XML
                              • C Discussion HTML et XML
                              • D Commentaires
                              • E Namespace
                              • F Syntaxe XML et espaces
                              • G Encodage des caractegraveres
                              • H Exemple Un programme XSLT pour geacuteneacuterer du HTML