Upload
trinhthien
View
222
Download
0
Embed Size (px)
Citation preview
Modlisation de documents numriques
Stphane Crozat
Ingnierie Documentairehttp://doc.crzt.fr
14 septembre 2016
Table des matires
Objectifs 4
I - Modlisation UML 5
1. Exemple ....................................................................................................................................... 5
2. Classes .......................................................................................................................................... 5
3. Associations .................................................................................................................................. 6
4. Hritage ........................................................................................................................................ 7
5. Pour aller plus loin ................................................................................................................... 7
II - Liens inter-fichiers 8
1. Rfrences entre fichiers XML .................................................................................................. 8
2. Transclusion: Document XML multi-fichiers ......................................................................... 9
III - Passage UML - Schma 12
1. Exemple ...................................................................................................................................... 12
2. Classe ......................................................................................................................................... 12
3. Attributs .................................................................................................................................... 13
4. Agrgation .................................................................................................................................. 13
5. Composition ............................................................................................................................... 14
6. Association ................................................................................................................................. 14
7. Notion d'ordre ........................................................................................................................... 15
8. Type de donnes ...................................................................................................................... 16
IV - Bonnes pratiques 17
1. Modles souples versus modles contraints ............................................................................ 17
2. Format des ressources .............................................................................................................. 17
3. Utilisation de standard ............................................................................................................ 18
4. Rcursivit versus contrle de profondeur ............................................................................. 18
V - Exercices 19
1. Exercices modlisation UML, passage RelaxNG, XSLT ....................................................... 20
1.1. Exercice: Standard W3C ................................................................................................................................. 201.2. Exercice: Contraintes d'ordre ......................................................................................................................... 211.3. Exercice: Diaporama ........................................................................................................................................ 211.4. Exercice: Cours en ligne ................................................................................................................................ 24
Solutions des exercices 25
Bibliographie 30
4Stphane Crozat
L'objectif est de proposer une mthode gnrale:
de reprsentation conceptuelle de document, en utilisant UMLde traduction en schma documentaire logique (en se basant par exemple sur RelaxNG)
Objectifs
Modlisation UML
5
--
1. Exemple
Exemple de modlisation documentaire UML
2. Classes
Crer une nouvelle classe pour chaque type d'entit documentaire identifiable et significatif.
On crera une classe pour les parties principales d'un document: chapitres, sections, etc.
On ne crera pas de classe pour un paragraphe par exemple ou pour un titre, qui sont des lments trop fins et qui pourront tre reprsents comme des attributs, par exemple.
Classes (cf. p.)Attributs (cf. p.)
(Consulter le poly de NF17)
Modlisation UMLI
Exemple
Mthode : Classe
Exemple
Exemple : Contre-exemple
Rappel : UML
Associations
6
---
-
Reprsentation UML d'une classe
Notion d'ordre (cf. p.15)
3. Associations
Les associations entre entits documentaires sont majoritairement de nature . On hirarchiqueprivilgiera dans ce cas les associations de type ou .composition agrgation
On utilisera les compositions lorsque les entits documentaires parties ne sont pas rutilisables et les agrgations lorsqu'elles sont rutilisables.
L'agrgation ou la composition sont typiques des relations qui lient un document avec un chapitre, un chapitre avec un sous-chapitre, etc.
Associations (cf. p.)Composition (cf. p.)Agrgation (cf. p.)
(Consulter le poly de NF17)
Notation de l'association en UML
Notation de l'agrgation en UML
Complment : Voir aussi
Mthode : Association
Mthode : Compositions et agrgations
Exemple
Rappel : UML
Hritage
7
-
--
Notation de la composition en UML
Rutilisation de fragments XML (cf. p.)Liens forts versus liens faibles (cf. p.)
4. Hritage
Utiliser l'hritage de faon classique pour factoriser les proprits des entits documentaire et les regrouper en grandes catgories.
Les parties d'un document (chapitre, section, sous-section, ...) pourront hriter d'une mme classe "partie" qui dfinira des proprits gnrales (titre, ...).
Hritage (cf. p.)
(Consulter le poly de NF17)
Notation de l'hritage en UML
5. Pour aller plus loin
UML 2 : Modliser une application web **
Complment : Voir aussi
Mthode
Exemple
Rappel : UML
Complment
Liens inter-fichiers
8
--
1. Rfrences entre fichiers XML
URI (utilisation du nom du fichier)code unique (abstraction du stockage physique, mais gestion de code implmenter)
Rfrence depuis un fichier vers un autre fichier.
1 2 3 4
1 2 3 ...4
Il s'agit d'une rfrence logique entre les deux fichiers, et non pas d'un lien hypertexte, au sens de HTML.
C'est le programme de transformation du XML qui devra donner un comportement explicite cette rfrence en fonction du contexte de publication.
Comme pour les autres lment, il n'y a pas de sens a priori dfinir gnriquement en XML.
XLink est un standard W3C de rfrencement entre fichiers XML.
Ce n'est pas exprimable en schmas XML (contraintes inter-fichiers), le systme doit implmenter ces contraintes complmentaires.
Liens inter-fichiersII
Modalit
Mthode : Technique de rfrencement logique
Fondamental : Rfrence logique
Remarque : XLink
Remarque : Contrle des fichiers lis
...
Transclusion: Document XML multi-fichiers
9
2. Transclusion: Document XML multi-fichiers
La rutilisation par copie se fait en copiant un fragment XML depuis un fichier dans un autre fichier.
Mais pour la rutilisation par rfrence, il faut sparer le contenu au sein de plusieurs fichiers, pouvant alors se rfrencer par des mcanismes d'URI (la rutilisation tant induite du fait que plusieurs fichiers peuvent rfrencer le mme fichier).
Fragment XML inclus dans le fichier l'utilisant. Le fragment n'est rutilisable que par copie.
1 2 3 ...4 5
Fragment XML rfrenc depuis le fichier l'utilisant ou le rutilisant. Le fragment est rutilisable par rfrence (et toujours pas copie).
1 2 3 4
1 2 3 ...4
Il est possible d'autoriser un modle mixte permettant alternativement les deux logiques (internalise ou externalise), au choix du producteur du fichier XML (on pourra parler d'externalisation user
.dependant
1 2 3 4 Ceci est mon premier chapitre5 6 7 Ceci est mon second chapitre8
Mthode : Rutilisation et XML
Dfinition: Internalisation
Dfinition: Externalisation
Dfinition: Modle mixte (user dependant)
Exemple : Chapitres internaliss
...
...
Ceci est mon premier chapitreCeci est mon second chapitre
Transclusion: Document XML multi-fichiers
10
9
1 2 3 4 5
1 2 3 Ceci est mon premier chapitre4
1 2 3 Ceci est mon second chapitre4
1 2 3 4 5 Ceci est mon second chapitre6 7
1 2 3 Ceci est mon premier chapitre4
L'internalisation ou l'externalisation ne sont que des reprsentation de gestion lies la rutilisation, .elles n'influencent par l'interprtation de la structure XML
Ainsi les trois exemples prcdents sont strictement quivalents et devront tre traits de faon identique, lors d'une publication typiquement (on peut considrer que tous les fragments externaliss sont rinternaliss avant traitement, par exemple).
L'externalisation rompt la correspondance "traditionnelle" 1 document = 1 fichier.
Notons nanmoins que dans le cas de XML, le rfrencement de fichiers binaires, aura dj, le cas cas chant, rompu cette unit.
Exemple : Chapitres externaliss
Exemple : Chapitres "user dependent" (modle mixte)
Fondamental : quivalence smantique
Remarque : 1 document = N fichiers
Ceci est mon premier chapitre
Ceci est mon second chapitre
Ceci est mon second chapitre
Ceci est mon premier chapitre
Transclusion: Document XML multi-fichiers
11
-
-
-
-
-
- Les schmas XML ne sont pas faits pour la validation d'un document XML multi-fichiers, il faut donc une mcanique complmentaire pour valider la structure d'un tel document.L'externalisation multiplie les fichiers et complique la gestion informatique (gestion des renommages et dplacements des fragments par exemple) et humaine (complexit induite par la difficult apprhender un document dans sa totalit via ses fragments)Le modle mixte peut compliquer le travail du rdacteur (choix de gestion supplmentaire d'externaliser ou pas lors de la rdaction).
Il est possible de dfinir des pointeurs pointant l'intrieur d'un document XML, en utilisant des mcaniques telle que XPath. Ainsi la syntaxe element fragment.xml
Cette solution pose nanmoins de nombreux problmes, qui la rende complexe grer:
La logique de rutilisation n'est pas formalise a priori, tout lment peut pointer tout lment de tout fragment (tandis que la fragmentation spcifie les points possibles de rutilisation, par construction)Les logiques de gestion sont beaucoup plus complexes (changement de structure du document XML avec pour consquence l'invalidation d'un XPath par exemple)...
Remarque
Complment : Rutilisation par rfrence sans fragmentation (pointeur intra-fichier)
Passage UML - Schma
12
1. Exemple
Exemple de modlisation documentaire UML
Tlcharger le schma sur le support en ligne.
[cf. ]
Tlcharger des exemples d'instance sur le support en ligne.
[cf. ]
2. Classe
Passage UML - Schma III
Modle UML d'un journal
Schmas Relax NG compact
Exemples d'instances
Modlisation UML
Attributs
13
Classe
Pour chaque classe crer un schma.
1 start = element classe {Classe}2 Classe = 3 ...
3. Attributs
Attributs
Pour chaque attribut crer un lment.
1 Classe = 2 element attributCle {text}, 3 element attribut {text}, 4 element attributOptionnel {text}?, 5 element attributMultivalu {text}+, 6 element attributCompos {element sous-attribut1 {text}, element sous-attribut2 {text} }
4. Agrgation
Agrgation
Mthode
Syntaxe : Relax NG compacte
Mthode
Syntaxe : Relax NG compacte
Modlisation UML
start = element classe {Classe}Classe = ...
Classe = element attributCle {text}, element attribut {text}, element attributOptionnel {text}?, element attributMultivalu {text}+, element attributCompos {element sous-attribut1 {text}, element sous-attribut2 {text} }
Composition
14
----
Externalisation (modle mixte possible).
1 2 start = element classe1 {Classe1}3 Classe1 = 4 ...5 element refClasse2 {xsd:anyURI}6 ...7
1 2 start = element classe2 {Classe2}3 Classe2 =4 ...
0..N:0..N0..N:1..N0..N:1..10..N:0..1
5. Composition
Composition
Crer un seul schma pour les deux classes (internalisation).
1 start = element classe1 {Classe1}2 Classe1 = 3 ...4 element classe2 {Classe2}*5 ...6 Classe2 =7 ...
Mthode
Syntaxe : Relax NG compacte
Remarque : Cardinalits possibles
Modlisation UML
Syntaxe : Relax NG compacte
start = element classe1 {Classe1}Classe1 = ...element refClasse2 {xsd:anyURI}...
start = element classe2 {Classe2}Classe2 =...
start = element classe1 {Classe1}Classe1 = ...element classe2 {Classe2}*...Classe2 =...
Notion d'ordre
15
6. Association
Association
Crer un schma pour chaque classe (externalisation).
1 start = element classe1 {Classe1}2 Classe1 = 3 ...4 element refClasse2 {xsd:anyURI}+5 ...
1 start = element classe2 {Classe2}2 Classe2 =3 ...
La cardinalit ct fichier inclus est exprime par la cardinalit de la clause "element".
La cardinalit ct fichier incluant est par dfaut de 0..N. Tout autre cardinalit demande un contrle du systme hors schma XML (contrle inter fichier).
7. Notion d'ordre
UML ne permet pas d'ordonner les attributs et les associations, conserver l'ordre logique ou probable lors de la traduction en schma (qui instaure un ordre).
Si ncessaire l'on peut ajouter sur un diagramme UML une annotation spcifiant un ordre particulier.
Modlisation UML
Syntaxe : Relax NG compacte
Rappel : Cardinalits
Attention : Ordre
start = element classe1 {Classe1}Classe1 = ...element refClasse2 {xsd:anyURI}+...
start = element classe2 {Classe2}Classe2 =...
Type de donnes
16
8. Type de donnes
dataType Type
Crer un schma.
1 Type = 2 ...
Les types de donnes complexe peuvent tre directement spcifis sous forme de schma, sans passer par la dfinition UML.
C'est galement le cas lorsque l'on rutilise un type standard.
dataType vCard
Types personnels et standard complexe commencent par une majuscule
Types de base (entier, chane, etc.) par une minuscule
Modlisation UML
Syntaxe : Relax NG compacte
Remarque : Dfinitions sous forme de schma
Exemple : Type standard
Mthode : Utilisation dans les diagramme UML
Type = ...
Bonnes pratiques
17
-----------
--
-
-
---
1. Modles souples versus modles contraints
Modle contraints simple = formulaire (facile, ex: CV, Webradio)Modle souple simple = Wiki-like (facile, ex: OpaleStarter)Modle contraint complexe = Rdaction contrle (rdaction difficile, rsultat trs qualitatif pour les auteurs, ex: Linio)Modle souple complexe = Bureautique (puissant, mais difficile car ressemble la bureautique sans en tre, ex: Opale)
2. Format des ressources
Utiliser des formats logiques plutt que physique lorsque c'est possible (texte, tableaux logiques, mathmatiques, etc.)Utiliser des formats standards sinon (OD, MPEG, etc.)Utiliser des formats mtiers ou dj connus sinon (formats dj utiliss dans le contexte)
Texte (XML sous ensemble de la DocBook)Tableau graphique (ODS, CALS, HTML)Tableau logique (XML sur mesure de type colonne / ligne)Photo (JPG)Dessins bitmap (PNG)Dessins vectoriels (ODG, SVG)Audio (MP3, OGG)Vido (MPEG-4, FLV, OGG)Animations (SWF, SMIL, HTML)Interactions (ZIP)Documents "publis" (PDF)
Prvoir dans le modle des "alternatives" permettant d'associer une ressource qui ne pourra pas tre systmatiquement publier des ressource, qui bien que moins pertinentes, permettront une diffusion plus large de l'information.
Bonnes pratiquesIV
Mthode
Exemple
Conseil : Alternatives et accessibilit
Utilisation de standard
18
Les deux usages caractristiques de l'alternative sont le (une animation ne peut tre multi-supportspublie sur papier, il faut prvoir par exemple une ou plusieurs image fixes reprsentative de l'animation) et l' (par exemple un moteur de lecture automatique pour non-voyant ne accessibilitpourra pas dcrire une image, il faut donc associer un texte cette dernire).
3. Utilisation de standard
Lorsque c'est pertinent il convient de s'inspirer ou de rutiliser des standards existants ou des sous-parties de ceux-ci.
Par exemple des sous-ensemble de MPEG-7 peuvent tre mobiliss pour la description multimdia, ou de DocBook pour le texte.
4. Rcursivit versus contrle de profondeur
Un modle rcursif est un modle qui permet un arbre d'lments de profondeur infinie, l'inverse d'un modle contrlant la profondeur.
Le modle rcursif est plus souple l'criture et facilite donc la phase d'criture, l'auteur retrouve des procdures rcurrentes. Par contre il est plus difficile grer lors de la publication, en effet l'on est alors tenu de prendre en compte des cas dont la probabilit est trs faible et de dcider d'un cas limite.
Pour une structure de liste, elle peut tre contrl et limite deux niveau(liste1 => item | liste2; liste2 => item) ou rcursive (liste => item | liste).
Conseil
Exemple
Dfinition
Conseil
Exemple
Exercices
19
ExercicesV
Exercice: Standard W3C
20
1. Exercices modlisation UML, passage RelaxNG, XSLT1.1. Exercice: Standard W3C
Soit l'extrait modifi suivant du dbut d'un standard du W3C. L'objectif est de raliser une chane ditoriale XML permettant la production contrle de ce type de documents.
Capture Web modifie de la page http://www.w3.org/TR/xsl
Question 1
Question 2
Question 3
Question 4
Proposer un modle conceptuel UML permettant de modliser ce document dans un langage orient mtier.
Traduire ce modle en schma RelaxNG.[ ]solution n1 *[ ] p.25
Rdiger un fichier XML valide correspondant l'exemple.[ ]solution n2 *[ ] p.26
Exercice: Contraintes d'ordre
21
1.2. Exercice: Contraintes d'ordreSoit le modle conceptuel ci-aprs.
Modle UML
Question 1
Question 2
1.3. Exercice: DiaporamaOn souhaite raliser une chane ditoriale XML permettant de crer et publier des diaporamas.
Soit l'exemple reprsentatif de contenu suivant:
[cf. Exemple de diaporama]Question 1
Question 2
Question 3
Question 4
crire une feuille de transformation XSLT permettant de transformer les documents de ce type en HTML.
Expliquer la signification de la contrainte ( ) ajoute au schma, et pourquoi de Texte, Image*telles contraintes sont parfois indispensables dans le cas de la modlisation documentaire?
[ ]solution n3 *[ ] p.26
Proposez une traduction en schma RelaxNG de ce modle.[ ]solution n4 *[ ] p.26
Raliser le modle conceptuel du document avec UML.[ ]solution n5 *[ ] p.27
Raliser le schma XML du document avec RelaxNG.[ ]solution n6 *[ ] p.27
Rdiger un exemple de contenu XML valide par rapport au schma.[ ]solution n7 *[ ] p.27
[ ]solution n8 *[ ] p.27
Exercice: Diaporama
22
Question 5
crivez un programme XSL-XSLT qui permet de transformer une diapositive de type diapoImageen XHTML.
Pour ce premier programme simple on pourra crire un seul et l'on utilisera les XPATH templatepour remplir le patron XHTML.
Pour le corps du XHTML on pourra utiliser les balises et .h1 img
Indice :
Structure XHTML vise:
1 2 3 ...4 5 6 ...7 8 9
Programme XSLT finir de remplir (remplacer les ).__XPATH__
1 2 8 9
10 11 12 13 14 15 16 17 18 19 20
crivez un programme XSL-XSLT qui permet de transformer une diapositive de type diapoTexteen XHTML.
Indice :
crivez six , un pour la racine , un pour , un pour , un pour templates / diapoTexte liste, un pour et un pour .item paragraphe important
Pour le XHTML, vous pourrez utiliser , , et .ul li p b
1 2
Exercice: Diaporama
23
Question 6
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:td="http://utc.fr/nf29/td"5 xmlns="http://www.w3.org/1999/xhtml"6 exclude-result-prefixes="td"7 version="1.0">8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 Conclusion23 24 25 2627 __XSLT__28 29 30 3132 __XSLT__33 34 35 3637 __XSLT__38 39 40 4142 __XSLT__43 44 45
crivez un programme XSL-XSLT qui permet de transformer un complet en un diaporamaunique fichier XHTML.
Indice :
Utiliser la fonction .document()
1 2 ...3 4 ...5
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:td="http://utc.fr/nf29/td"xmlns="http://www.w3.org/1999/xhtml"exclude-result-prefixes="td"version="1.0"> Conclusion
__XSLT__
__XSLT__
__XSLT__
__XSLT__
......
Exercice: Cours en ligne
24
Question 7
1.4. Exercice: Cours en ligneQuestion
-
--
Ajouter au programme prcdent la gnration pralable d'un sommaire avec des ancres.
Indice :
Utiliser:
La commande pour le sommaire;xsl:foreachla fonction dans la balise pour les generate-id liens sources;la fonction dans la balise generate-id
1 2 ...3 Table des matires4 5
6 7
8 9 ...
10
1 2 ...3 4 ...5
[ ]solution n9 *[ ] p.28
Raliser le modle UML d'un des modules de cours de NF17, par exemple : http://www4.utc..fr/~nf17/DOCS/modules/01
[ ]solution n10 *[ ] p.28
... Table des matires
...
... ...
http://www4.utc.fr/~nf17/DOCS/modules/01http://www4.utc.fr/~nf17/DOCS/modules/01
Solutions des exercices
25Stphane Crozat
Exercice p. 20> Solution n1
1 2 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Solutions des exercices
Solutions des exercices
26Stphane Crozat
Exercice p. 21> Solution n4
Exercice p. 21> Solution n3
Exercice p. 20> Solution n2
41
1 2 3 4 2006-12-055 http://www.w3.org/TR/2006/REC-xsl11-200612056 http://www.w3.org/TR/xsl117 http://www.w3.org/TR/2006/PR-xsl11-200610068 9 Anders Berglund
10 IBM11 [email protected] 13 14 15 Extensible Stylesheet Language (XSL) Version 1.116 17 This specification defines the features and syntax for the Extensible Stylesheet Language (XSL), a
language for expressing stylesheets. It consists of two parts:18 19 a language for transforming XML documents (XSLT), and20 an XML vocabulary for specifying formatting semantics.21 22 An XSL stylesheet specifies the presentation of a class of XML
documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary.
23 24 25
La contrainte exprime une relation d'ordre entre le texte et les images : ainsi le texte est obligatoirement les images. Ces contraintes sont parfois indispensables car la modlisation avantUML n'intgre pas ce concept, qui au contraire est prsent dans le paradigme grammatical des schmas XML.
1 2 5 6 7 8 9
2006-12-05 http://www.w3.org/TR/2006/REC-xsl11-20061205 http://www.w3.org/TR/xsl11 http://www.w3.org/TR/2006/PR-xsl11-20061006 Anders Berglund IBM [email protected] Extensible Stylesheet Language (XSL) Version 1.1 This specification defines the features and syntax for the Extensible Stylesheet Language (XSL), a language for expressing stylesheets. It consists of two parts: a language for transforming XML documents (XSLT), and an XML vocabulary for specifying formatting semantics. An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary.
Solutions des exercices
27Stphane Crozat
Exercice p. 21> Solution n7
Exercice p. 21> Solution n6
Exercice p. 21> Solution n5
10 11 12 13 14 15 16 17 18 19 20 21 22 23
Modle UML
[cf. Sources des schmas RelaxNG]
[cf. Source des fichiers XML instance]
Solutions des exercices
28Stphane Crozat
Exercice p. 24> Solution n10
Exercice p. 24> Solution n9
Exercice p. 21> Solution n8
1 2 8 9
10 11 12 13 14 15 16 17 18 19 20
[cf. Sources des programmes XSL-XSLT]
Schma UML SP/UL
Solution aux quatre questions
Exemple
Solutions des exercices
29Stphane Crozat
Package Resource associ
Le texte aurait pu tre directement dfini par un schma.
Remarque
Bibliographie
30Stphane Crozat
Pascal Roques, , UML 2: Modliser une application web 4e dition, Les cahiers du programmeur, , [ISBN 978-2212123890]Eyrolles 2008
Bibliographie
ObjectifsModlisation UMLExempleClassesAssociationsHritagePour aller plus loin
Liens inter-fichiersRfrences entre fichiers XMLTransclusion: Document XML multi-fichiers
Passage UML - SchmaExempleClasseAttributsAgrgationCompositionAssociationNotion d'ordreType de donnes
Bonnes pratiquesModles souples versus modles contraintsFormat des ressourcesUtilisation de standardRcursivit versus contrle de profondeur
ExercicesExercices modlisation UML, passage RelaxNG, XSLTExercice: Standard W3CExercice: Contraintes d'ordreExercice: DiaporamaExercice: Cours en ligne
Solutions des exercicesBibliographie