Скачать презентацию Publication et Traitement avec XSL 1 XPATH 2 Скачать презентацию Publication et Traitement avec XSL 1 XPATH 2

56e82548e3313a95e9d40067afdbd595.ppt

  • Количество слайдов: 49

Publication et Traitement avec XSL 1. XPATH 2. XSLT 3. XSLFO 4. Traitement de Publication et Traitement avec XSL 1. XPATH 2. XSLT 3. XSLFO 4. Traitement de documents 5. Conclusion

1. XPath : l'adressage XML • XPath • • Expressions de chemins dans un 1. XPath : l'adressage XML • XPath • • Expressions de chemins dans un arbre XML Permet de sélectionner des nœuds par navigation Document XML ? XPath III. 2

XPath • XML Path Language • • • recommandation W 3 C pour expressions XPath • XML Path Language • • • recommandation W 3 C pour expressions de chemins acceptée le 16 novembre 1999 version 2 en cours d'élaboration • Expressions de chemins communes à : • • • XSL Xpointer (liens) XQuery (queries) • Xpath permet • • XPath de recher un élément dans un document d'adresser toute sous partie d'un document III. 3

XPath - Parcours d'arbre • XPath opère sur l'arbre d'un document racine <livre auteur XPath - Parcours d'arbre • XPath opère sur l'arbre d'un document racine Les chatiments

Buonaparte
@auteur
Neige
"Hugo" … livre chapitre titre Les chatiments section Bonaparte XPath III. 4 chapitre section Neige

XPath - Expression de chemins • Une expression de chemins spécifie une traversée de XPath - Expression de chemins • Une expression de chemins spécifie une traversée de l'arbre du document : • • • depuis un nœud de départ vers un ensemble de nœuds cibles constituent la valeur du cheminement • Un chemin peut être : • • XPath absolu • commence à la racine • /étape 1/…/étape. N relatif • commence à un nœud courant • étape 1/…/étape. N III. 5

Syntaxe et sémantique • Cheminement élémentaire • direction: : sélecteur [predicat] • Directions • Syntaxe et sémantique • Cheminement élémentaire • direction: : sélecteur [predicat] • Directions • parent, ancestor-or-self • child, descendant-or-self • preceding, preceding-sibling, following-sibling • self, attribute, namespace • Sélecteur • nom de nœud sélectionné (élément ou @attribut) • Prédicat • [Fonction(nœud) = valeur] XPath III. 6

XPath - Exemples • Sections d'un chapitre • • /child: : livre/child: : chapitre/child: XPath - Exemples • Sections d'un chapitre • • /child: : livre/child: : chapitre/child: : section /livre/chapitre/section • Texte du chapitre 1 section 2 • • XPath /descendant: : chapitre[position() = 1] /child: : section[position() = 2]/child: : text() //chapitre[1]/section[2]/text() III. 7

XPath - Synthèse XPath III. 8 XPath - Synthèse XPath III. 8

2. XSLT : la présentation • Permet de transformer un document • • • 2. XSLT : la présentation • Permet de transformer un document • • • régulier ou irrégulier de XML à XML, XHTML est un cas particulier De XML à présentation (HTML, texte, rtf, pdf, etc. ) • Un document est un arbre • Le processeur XSL parcourt l'arbre et applique les règles de transformations vérifiées (à condition vraie) aux nœuds sélectionnés • Un document est produit en sortie XSLT III. 9

Publications avec XSL • Plusieurs formats de publication pour un contenu Format ( Postcript) Publications avec XSL • Plusieurs formats de publication pour un contenu Format ( Postcript) XML Browser Document (XHTML, DHTML, HTML) XSL Processor Format (XML) pour Word, Excel XSL Stylesheet Format (XML) application e. Commerce • XSL permet la présentation sur des terminaux variés format (WML) XSLT III. 10

Architectures HTML XML Programme XML Fichier XML S E R V E U R Architectures HTML XML Programme XML Fichier XML S E R V E U R Processeur XSL HTML Affichage XML Processeur XSL Base de données XSLT Affichage ASP ou JSP III. 11 • Affichage • Traitement

Les feuilles de style • Une feuille de style XSL • • est un Les feuilles de style • Une feuille de style XSL • • est un document XML de racine contient une liste de règles de transformation • Chaque règle () précise: • • Une condition spécifiant le sous-arbre du document d’entrée auquel elle s’applique (match=) Une production spécifiant le résultat de l’application de la règle (contenu) • Il s'agit de règles de production classiques • • XSLT If then Codées en XML avec espace de nom xsl: III. 12

Le Romantique" src="https://present5.com/presentation/56e82548e3313a95e9d40067afdbd595/image-13.jpg" alt="Exemple de document Le Romantique" /> Exemple de document Le Romantique Cabourg Calvados Les Trois. Gros Roanne Loire XSLT III. 13

Exemple de feuille de style XSL ESSAI XSL BONJOUR LE GROUPE XML SUIVEZ LE GUIDE

Restaurant :

XSLT III. 14

Les règles de production • Définition des règles par <xsl: template …> • Attributs Les règles de production • Définition des règles par • Attributs • • match: condition de sélection des nœuds sur lesquels la règle s'applique (XPath) name: nom de la règle, pour invocation explicite (en conjonction avec ) mode: permet d'appliquer à un même élément des règles différentes en fonction du contexte priority: priorité, utilisé en cas de conflit entre deux règles ayant la même condition • Exemples • • XSLT III. 15

La génération du résultat • Le contenu de l'élément <xsl: template> est la production La génération du résultat • Le contenu de l'élément est la production de la règle: • • Les éléments du namespace xsl sont des instructions qui copient des données du document source dans le résultat Les autres éléments sont inclus tels quels dans le résultat • Instructions pour: • • Parcourir l'arbre du document source Copier le contenu du document source dans le résultat • Parcours de l'arbre: • , • Copie du contenu du nœud sélectionné: • XSLT III. 16

Résumé des commandes • • <xsl: template>, définir une règle et son contexte <xsl: Résumé des commandes • • , définir une règle et son contexte , appliquer les transformations aux enfants du nœud courant • , extrait la valeur d'un élément sélectionné à partir du nœud courant • , définir un traitement itératif , générer une processing instruction • • XSLT , générer un élément , générer un attribut , définir un traitement conditionnel III. 17

Processeurs XSLT • Processeurs XSLT conformes à la spécification: • • • Apache Group Processeurs XSLT • Processeurs XSLT conformes à la spécification: • • • Apache Group (www. apache. org): Xalan Oracle XDK (www. oracle. com): XML Parser/ XSL Proc. MSXML. NET James Clark (www. jclark. com): XT Saxon lib. XML, lib. XSLT (Unix C) • Browser • • • Microsoft MSXML et IE 5 ou plus Netscape supporte XSLT depuis la V 6 Firefox Mozilla • Editeur et debugger • • XSLT Style Vision de Altova Oxygen de Synchro Stylus Studio de Data Direct Cook. Top et Tidy (gratuit) III. 18

Quelques éditeurs XSLT III. 19 Quelques éditeurs XSLT III. 19

IBM XSL Editor XML XSLT Rendu XSLT III. 20 IBM XSL Editor XML XSLT Rendu XSLT III. 20

Bilan XSLT • XSLT est un langage très puissant de transformation d'un arbre XML Bilan XSLT • XSLT est un langage très puissant de transformation d'un arbre XML en un autre • XSLT permet en particulier de publier des données XML sur le Web par transformation en un document HTML standard • XSLT est très utilisé : • • XSLT Pour publier des contenus XML Pour transformer des formats (EAI, B 2 B) III. 21

3. XSL-FO : le formatage • Permet les mises en pages sophistiquées • Objets 3. XSL-FO : le formatage • Permet les mises en pages sophistiquées • Objets de mise en forme applicables aux résultats avec XSLT • Distinction • • XSL-FO Formatage des pages Formatage des objets à l'intérieur des pages • Statiques • Dynamiques III. 22

Principes • Peut s'appliquer aux résultats des feuilles XSLT XSL-FO III. 23 Principes • Peut s'appliquer aux résultats des feuilles XSLT XSL-FO III. 23

Organisation du document • Un document FO est formé d'un élément fo: root qui Organisation du document • Un document FO est formé d'un élément fo: root qui comprend deux parties distinctes • • une description des modèles de pages • fo: layout-master-set une description du contenu • fo: page-sequence • Le contenu comporte : • • XSL-FO Des flux contenant les données mêmes du document Des éléments statiques dont le contenu se répète sur les pages (en-têtes courants, no de page, etc. ) III. 24

Objets de formatage • Les objets de formatage sont multiples : • • • Objets de formatage • Les objets de formatage sont multiples : • • • • utilisé pour les blocs de textes, paragraphes, titres… • ligne de séparation • zone rectangulaire contenant un graphisme (SVG) • Ils possèdent de nombreuses propriétés • XSL-FO Pour un block on peut définir • la marge gauche et droite • l’espace avant et après le paragraphe • la couleur du texte ………. . . III. 25

Fonctionnalités • • • XSL-FO Pages portrait ou paysage Pages recto-verso Page de tailles Fonctionnalités • • • XSL-FO Pages portrait ou paysage Pages recto-verso Page de tailles variées Marges multiples Colonnes multiples Entête et pieds de page Caractères unicode Formatage multi-langages Tables des matières générées • Multiple directions d'écritures • Numérotation des pages • Graphiques et SVG • Tables, avec entêtes, lignes et colonnes fusionnables • Listes • Zones flottantes • Tris à l'édition • Notes de bas de pages III. 26

XSL-FO: hello World Hello, world! XSL-FO • Element Root • • Layout master set • • C'est le container du texte utilisateur dans le document. Le nom du flot lit le texte à une zone de la page définie dans le masque. Block • III. 27 Les pages sont groupées en séquences et structurées selon la référence au masque. Flow • • Permet de déclarer une ou plusieurs page masters (masque) et page sequence masters pour définir la structure des pages (ici une de 2 cm de marges) Page sequence • • Permet de définir le namespace XSL-FO C'est le bloc de formatage qui inclut un paragraphe de texte pouvant être produit pas XSLT.

XSL-FO et XSLT : Exemple • Définition de propriétés pour la racine • <xsl: XSL-FO et XSLT : Exemple • Définition de propriétés pour la racine •

Les processeurs XSL-FO • Apache Group : FOP • • Formating Object Processor Génère Les processeurs XSL-FO • Apache Group : FOP • • Formating Object Processor Génère du PDF http: //www. apache. org • JFOR (Open Source) • Génère du RTF http: //www. jfor. org • Antenna House • XSL Formatter http: //www. antennahouse. com • Render. X • Génère du PDF http: //www. renderx. com • Altova • Style. Vision http: //www. altova. com/products_xsl. html • XML Mind FO Converter • Génère du RTF http: //www. xmlmind. com/foconverter • Autres • XSL-FO Arbortext, Adobe, Scriptura, XMLPDF, APOC, XSL-FO to Te. X III. 29

Bilan XSL • XML = format pour la production de publications échangeables sur le Bilan XSL • XML = format pour la production de publications échangeables sur le web : • • Questions ? production d’une source unique en XML ; XSLT = génération automatique de présentations multiples ; XSL-FO = génération de présentations soignées avec pages maîtres et blocs formatés. • XSL peut être vu comme le langage de programmation de XML … XSL III. 30

18 Parser XML Paris Bien" src="https://present5.com/presentation/56e82548e3313a95e9d40067afdbd595/image-31.jpg" alt="4. XML: le traitement par programme Paris France 18 Parser XML Paris Bien" /> 4. XML: le traitement par programme Paris France 18 Parser XML Paris Bien formé France 18 Mal formé/Invalide XSL Stylesheet Manipulation de l'arbre SAX XML DOM XML Schema (ou DTD) XSLFO XSLT Paris 65 WML Mapping XML (X)HTML PDF III. 31 RTF, Word Paris événements – call back

L'interface DOM • Standard W 3 C fait pour HTML et XML • Structure L'interface DOM • Standard W 3 C fait pour HTML et XML • Structure d'objets pour représenter un document • • Résultat d'un "parser" Arbre d'objets reliés entre eux • Interface objet pour naviguer dans un document • • DOM Orientée objet Peut être utilisée en: • Java, C++ • C#, VB • Python, PHP III. 32

Principaux parseurs Document XML Xerces Apache (Java, C++) MSXML Microsoft SDK Oracle JAXP J Principaux parseurs Document XML Xerces Apache (Java, C++) MSXML Microsoft SDK Oracle JAXP J 2 EE (Sun JDK) API générique J 2 EE Parseur DOM Arbre DOM API DOM Application DOM III. 33

Exemple d'arbre DOM Racine du document Document Node. List <Guide> Element Node. List <Restaurant> Exemple d'arbre DOM Racine du document Document Node. List Element Node. List Element Named. Node. Map Le meilleur restaurant Attr Node. List Id="R 1" Text Le meilleur restaurant DOM III. 34

L'arbre DOM • Navigation via un arbre générique de nœuds • • • Node. L'arbre DOM • Navigation via un arbre générique de nœuds • • • Node. List (Parent/Child) Named. Node. Map Document Processing. Instruction Document. Type • Tout nœud hérite de Node DOM Element Child Text Le meilleur restaurant III. 35 . .

Quelques interfaces de base • Document • • DOM • create. Element (Nom_Element): • Quelques interfaces de base • Document • • DOM • create. Element (Nom_Element): • créer un élément avec le nom spécifié en paramètre. create. Comment (commentaire): • créer une ligne de commentaires dans le document. create. Attribute (Nom_Attribut): • créer un attribut avec le nom pris en paramètre. get. Elements. By. Tag. Name (nom_Tag): • retourne tous les descendants des éléments correspondants au Nom_Tag. Nœud • • • III. 36 insert. Before (Nouveau_Noeud, Noeud_Reference): • insère un nouveau nœud fils avant le " nœud référence" déjà existant. replace. Child (Nouveau_Noeud, Ancien_Noeud): • remplace le nœud "Ancien_Noeud" par le nœud "Nouveau_Noeud". remove. Child (Nœud): • supprime le nœud entré en paramètre de la liste des nœuds. append. Child (Nouveau_Noeud): • Ajoute un nouveau nœud a la fin de la liste des nœuds. has. Child. Nodes(): • Retourne vrai si le nœud possède un enfant

Autres interfaces • Interfaces fondamentales • • DOM • Interfaces étendues XML DOMImplementation Document Autres interfaces • Interfaces fondamentales • • DOM • Interfaces étendues XML DOMImplementation Document Comment Document. Fragment Element Attr(ibute) Named. Node. Map Character. Data • Comment • Text • • • III. 37 Processing. Instruction Document. Type CDATASection Notation Entity. Reference

Exemple d'utilisation Public class Exemple. DOM public static main (String argc[]) throws IOException, DOMExcetion Exemple d'utilisation Public class Exemple. DOM public static main (String argc[]) throws IOException, DOMExcetion {XMLDocument xml. Doc = new Xml. Document(); // creation des nœuds Element. Node nom = (Element. Node) xml. Doc. create. Element("nom"); Element. Node prenom = (Element. Node) xml. Doc. create. Element("prenom"); Element. Node nomfam = (Element. Node) xml. Doc. create. Element("nomfam"); // creation de l'arbre xml. Doc. append. Child(nom); nom. appen. Child(prenom); prenom. append. Child(xml. Doc. create. Text. Node("Jean"); nom. appen. Child(nomfam); Document: nomfam. append. Child(xml. Doc. create. Text. Node("Dupont"); // positionnement d'un attribut nom. set. Attribute("ville", "Paris"); Jean // sortie Dupont System. exit(0); } } DOM III. 38

Bilan DOM • Une interface objet standard • • • DOM Level 3 : Bilan DOM • Une interface objet standard • • • DOM Level 3 : • Navigation dans l'arbre XML Traitements spécifiques • Performance limitée • • • Place mémoire importante Traitement à la fin de l'analyse • DOM 2. 0 • • API indépendante de la structure mémoire • DOM III. 39 XPath • Support direct de XPath • Définition d'un XPath Evaluator Events • Modèle d'événements • Associés à un nœud • Propagés dans l'arbre Style • Accès aux styles • Mapping complet Load and Save • Stockage de l’arbre

L'interface SAX • SAX (Simple API for XML) • • modèle simplifié d'événements développé L'interface SAX • SAX (Simple API for XML) • • modèle simplifié d'événements développé par un groupe indépendant. • Types d'événement : • • • début et fin de document ; début et fin d'éléments ; attributs, texte, …. • Nombreux parseurs publics • • SAX XP de James Clark, Aelfred, Saxon MSXML 3 de Microsoft Xerces de Apache JAXP de SUN III. 40

Principe de fonctionnement Méthodes utilisateur Evénement start. Document XML Stream XML Parser Evénement start. Principe de fonctionnement Méthodes utilisateur Evénement start. Document XML Stream XML Parser Evénement start. Element …. Evénement end. Document Content Handler SAX III. 41

Les méthodes essentielles • XMLReader • • Error. Handler set. Content. Handler set. Errror. Les méthodes essentielles • XMLReader • • Error. Handler set. Content. Handler set. Errror. Handler parse • • Content. Handler • • • SAX start. Document end. Document start. Element end. Element characters III. 42 fatal. Error error warning

Exemple SAX et DOM <personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal Exemple SAX et DOM Cover Harry Stendhal Paris SAX start. Document () start. Element (personne) start. Element (nom) personne characters (Cover) nom end. Element (nom) #text: Cover start. Element (prenom) prenom characters (Harry) #text: Harry end. Element (prenom) adresse start. Element (adresse) rue start. Element (rue) #text: Stendhal characters (Stendhal) ville end. Element (rue) #text: Paris start. Element (ville) characters (Paris) end. Element (ville) end. Element (adresse) end. Element (personne) end. Document () III. 43

DOM versus SAX • DOM utilise SAX pour la construction de l’arbre d’un document DOM versus SAX • DOM utilise SAX pour la construction de l’arbre d’un document XML • SAX est plus léger que DOM • Au-dessus de DOM, il est possible d ’implémenter un « method caller » . . . SAX III. 44

Integration : API JAXP • Java API for XML Parsing • JAXP est une Integration : API JAXP • Java API for XML Parsing • JAXP est une d'API standard J 2 EE permettant d'effectuer des traitements XML qui englobe : • SAX (SAX 2. 0) • DOM (DOM Level 2) • la manipulation de transformations XSLT • Objectif • Fournir une couche d’abstraction permettant d’utiliser n’importe quel analyseur SAX/DOM ou processeur XSL • JAXP 1. 3 est inclus dans le JDK de Sun • Java WSDP 2. 0, Java SE 5. 0, disponible sur Java. Net III. 45

Le mapping objet (Data Binding- JAXB) • Définition • Mapping entre un document XML Le mapping objet (Data Binding- JAXB) • Définition • Mapping entre un document XML et un graphe d’objets métier C++ ou Java Développements manuels Objets C++ Parsing Xerces C++ XML Mapping Interface générée à l’aide d’outils de Data Binding Objets Java Parsing XDK Java XML III. 46 Objets Java Binding Java XML

Principes • Compilation du schéma en classes Java • Traduction des documents en objets Principes • Compilation du schéma en classes Java • Traduction des documents en objets compile Schema Classes instance of conforms unmarshal Objects Documents marshal • Possibilité de publier les objets en XML III. 47

Avantages • L’activité de développement Avantages • L’activité de développement "parsing" est réduite • • • Gain en coût de développement des interfaces Les applications peuvent se concentrer sur le fonctionnel Les développeurs n'ont pas à se soucier du mapping XML • Les Systèmes Techniques sont simplifiés • • • Capitalisation sur l’interface (utilisation, évolution, …) Gain en terme de fiabilité (fin de l’utilisation de parseurs variés, parfois écrits à la main) Les performances de l’interface sont optimisées • Les outils de mapping sont intégrés aux serveurs • • Mapping J 2 EE = JAXB. NET = mapper III. 48

5. Conclusion • Un ensemble d’outils pour • Questions ? traiter du XML: • 5. Conclusion • Un ensemble d’outils pour • Questions ? traiter du XML: • • Analyseurs validants Processeurs XSLT/XSLFO • Intégrés aux serveurs d’applications • • J 2 EE = JAXP. NET = MSXML • En évolution permanente III. 49