• Aucun résultat trouvé

DamienNouvel XML

N/A
N/A
Protected

Academic year: 2022

Partager "DamienNouvel XML"

Copied!
52
0
0

Texte intégral

(1)

XML

Damien Nouvel

(2)

Structuration de données

Plan

1.Structuration de données

2.Définition de la structure des documents 3.Transformations XML

(3)

Structuration de données

Sémantique des données

§ Structuration HTML

‚ Mise en forme de pages web

‚ Transition vers la sémantique

ñ Les données ont une structure différente de leur présentation

§ XML : eXtensible Markup Language

‚ Utilisation debalises(SGML)

‚ Format d’échanges de données

‚ HTML est un format SGML / XML ñ Quelles structures pour quelles données ?

(4)

Structuration de données

Sémantique des données

§ Structuration HTML

‚ Mise en forme de pages web

‚ Transition vers la sémantique

ñ Les données ont une structure différente de leur présentation

§ XML : eXtensible Markup Language

‚ Utilisation debalises(SGML)

‚ Format d’échanges de données

‚ HTML est un format SGML / XML ñ Quelles structures pour quelles données ?

(5)

Structuration de données

Sémantique des données

§ Structuration HTML

‚ Mise en forme de pages web

‚ Transition vers la sémantique

ñ Les données ont une structure différente de leur présentation

§ XML : eXtensible Markup Language

‚ Utilisation debalises(SGML)

‚ Format d’échanges de données

‚ HTML est un format SGML / XML ñ Quelles structures pour quelles données ?

(6)

Structuration de données

Sémantique des données

§ Structuration HTML

‚ Mise en forme de pages web

‚ Transition vers la sémantique

ñ Les données ont une structure différente de leur présentation

§ XML : eXtensible Markup Language

‚ Utilisation debalises(SGML)

‚ Format d’échanges de données

‚ HTML est un format SGML / XML ñ Quelles structures pour quelles données ?

(7)

Structuration de données

Exemple : Linguistique

§ Ceci est un énoncé !

<phrase>

<pronom> Ceci </pronom>

<verbe> est </verbe>

<groupenominal>

<determinant> un </determinant>

<nomcommun> énoncé </nomcommun>

</groupenominal>

<ponctuation> ! </ponctuation>

</phrase>

(8)

Structuration de données

Exemple : voiture

§ Description d’une voiture

<voiture>

<pneus>Michelin 135 neige</pneus>

<moteur type="diesel">1.6 TDI</moteur>

<habitacle>

<volant forme="rond">

<klaxon />

</volant>

<sieges confort="cuir" nombre="4">top classe</sieges>

</habitacle>

<parechoc>abimé mais tient encore</parechoc>

(9)

Structuration de données

Structuration

§ Structuration des données

‚ Arbre (graphe : nœuds et arcs)

‚ Sémantique des noms des nœuds

‚ Sémantique des noms d’attributs

ñ Définition d’une structure possible

ñ On ne tient pas compte de la présentation

§ Bases de données

‚ Traditionnellement :tables

ñ Pour le stockage, pas pour l’échange

(10)

Structuration de données

Structuration

§ Structuration des données

‚ Arbre (graphe : nœuds et arcs)

‚ Sémantique des noms des nœuds

‚ Sémantique des noms d’attributs ñ Définition d’une structure possible

ñ On ne tient pas compte de la présentation

§ Bases de données

‚ Traditionnellement :tables

ñ Pour le stockage, pas pour l’échange

(11)

Structuration de données

Structuration

§ Structuration des données

‚ Arbre (graphe : nœuds et arcs)

‚ Sémantique des noms des nœuds

‚ Sémantique des noms d’attributs ñ Définition d’une structure possible

ñ On ne tient pas compte de la présentation

§ Bases de données

‚ Traditionnellement :tables

ñ Pour le stockage, pas pour l’échange

(12)

Définition de la structure des documents

Plan

1.Structuration de données

2.Définition de la structure des documents 3.Transformations XML

(13)

Définition de la structure des documents

Structuration

§ Vocabulaire etstructure par domaine / application

‚ Pas n’importe quelle balises / attributs (HTML)

‚ Pas n’importe quelles imbrications

§ Décrire une voiture

ñ Le volant doit être dans l’habitacle

ñ Un moteur peut-être de type diesel ou essence (pas d’ergol) ñ …

ñ Vérification de la validité d’un document ñ Définir la structure du document …en XML! ñ Possibilité d’utiliser des espaces de noms (xmlns)

(14)

Définition de la structure des documents

Structuration

§ Vocabulaire etstructure par domaine / application

‚ Pas n’importe quelle balises / attributs (HTML)

‚ Pas n’importe quelles imbrications

§ Décrire une voiture

ñ Le volant doit être dans l’habitacle

ñ Un moteur peut-être de type diesel ou essence (pas d’ergol) ñ …

ñ Vérification de la validité d’un document ñ Définir la structure du document …en XML! ñ Possibilité d’utiliser des espaces de noms (xmlns)

(15)

Définition de la structure des documents

Structuration

§ Vocabulaire etstructure par domaine / application

‚ Pas n’importe quelle balises / attributs (HTML)

‚ Pas n’importe quelles imbrications

§ Décrire une voiture

ñ Le volant doit être dans l’habitacle

ñ Un moteur peut-être de type diesel ou essence (pas d’ergol) ñ …

ñ Vérification de la validité d’un document

ñ Définir la structure du document …en XML! ñ Possibilité d’utiliser des espaces de noms (xmlns)

(16)

Définition de la structure des documents

Structuration

§ Vocabulaire etstructure par domaine / application

‚ Pas n’importe quelle balises / attributs (HTML)

‚ Pas n’importe quelles imbrications

§ Décrire une voiture

ñ Le volant doit être dans l’habitacle

ñ Un moteur peut-être de type diesel ou essence (pas d’ergol) ñ …

ñ Vérification de la validité d’un document ñ Définir la structure du document …en XML!

ñ Possibilité d’utiliser des espaces de noms (xmlns)

(17)

Définition de la structure des documents

Structuration

§ Vocabulaire etstructure par domaine / application

‚ Pas n’importe quelle balises / attributs (HTML)

‚ Pas n’importe quelles imbrications

§ Décrire une voiture

ñ Le volant doit être dans l’habitacle

ñ Un moteur peut-être de type diesel ou essence (pas d’ergol) ñ …

ñ Vérification de la validité d’un document ñ Définir la structure du document …en XML! ñ Possibilité d’utiliser des espaces de noms (xmlns)

(18)

Définition de la structure des documents

DTD et XML Schema

§ DTD : Document Type Definition (ISO, fichiers .dtd)

§ XML Schema (W3C, fichiers .xsd)

‚ Structure générale

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ...

</xs:schema>

‚ Éléments du schema

Éléments simples : balises sans attributs ni enfants ñ Nom de balise et type de contenu

ñ Types : chaîne, nombres, date, …

Éléments complexes : balises avec attributs ou enfants ñ Contient d’autres définitions

ñ Peut tenir compte de l’ordre (sequence)

(19)

Définition de la structure des documents

DTD et XML Schema

§ DTD : Document Type Definition (ISO, fichiers .dtd)

§ XML Schema (W3C, fichiers .xsd)

‚ Structure générale

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

...

</xs:schema>

‚ Éléments du schema

Éléments simples : balises sans attributs ni enfants ñ Nom de balise et type de contenu

ñ Types : chaîne, nombres, date, …

Éléments complexes : balises avec attributs ou enfants ñ Contient d’autres définitions

ñ Peut tenir compte de l’ordre (sequence)

(20)

Définition de la structure des documents

DTD et XML Schema

§ DTD : Document Type Definition (ISO, fichiers .dtd)

§ XML Schema (W3C, fichiers .xsd)

‚ Structure générale

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

...

</xs:schema>

‚ Éléments du schema

Éléments simples : balises sans attributs ni enfants ñ Nom de balise et type de contenu

ñ Types : chaîne, nombres, date, …

Éléments complexes : balises avec attributs ou enfants ñ Contient d’autres définitions

ñ Peut tenir compte de l’ordre (sequence)

(21)

Définition de la structure des documents

DTD et XML Schema

§ DTD : Document Type Definition (ISO, fichiers .dtd)

§ XML Schema (W3C, fichiers .xsd)

‚ Structure générale

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

...

</xs:schema>

‚ Éléments du schema

Éléments simples : balises sans attributs ni enfants ñ Nom de balise et type de contenu

ñ Types : chaîne, nombres, date, …

Éléments complexes : balises avec attributs ou enfants ñ Contient d’autres définitions

ñ Peut tenir compte de l’ordre (sequence)

(22)

Définition de la structure des documents

DTD et XML Schema

§ DTD : Document Type Definition (ISO, fichiers .dtd)

§ XML Schema (W3C, fichiers .xsd)

‚ Structure générale

<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

...

</xs:schema>

‚ Éléments du schema

Éléments simples : balises sans attributs ni enfants ñ Nom de balise et type de contenu

(23)

Définition de la structure des documents

Formats de données populaires

§ Quelques formats populaires

‚ RDF (Resource Description Framework) : web sémantique

‚ OWL (Ontology Web Language) : web sémantique

‚ RSS (Rich Site Summary), Atom : syndication de sites

‚ Dublin Core, MODS : Bibliographie

‚ BiblioML : Bibliographie (BNF)

‚ TEI (Text Encoding Initiative) : applications TAL

‚ NIF (NLP Interchange Format) : applications TAL

‚ MODS : bibliographie (Bibliothèque du Congrès, USA)

‚ METS : Collection de fichiers

‚ GML (Geographic Markup Language) : données géographiques

‚ EbXML : commerce électronique

(24)

Transformations XML

Plan

1.Structuration de données

2.Définition de la structure des documents 3.Transformations XML

(25)

Transformations XML

Du format de données au format de présentation

§ Des données XML vers la présentation HTML ñ Transformations

‚ Balises HTML mélangées aux balises de transformation ñ Chaque transformation réussie affiche un texte / du HTML ñ Sélectionetitération sur les nœuds

§ Format du fichier

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ...

</xsl:stylesheet>

(26)

Transformations XML

Du format de données au format de présentation

§ Des données XML vers la présentation HTML ñ Transformations

‚ Balises HTML mélangées aux balises de transformation

ñ Chaque transformation réussie affiche un texte / du HTML ñ Sélectionetitération sur les nœuds

§ Format du fichier

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ...

</xsl:stylesheet>

(27)

Transformations XML

Du format de données au format de présentation

§ Des données XML vers la présentation HTML ñ Transformations

‚ Balises HTML mélangées aux balises de transformation ñ Chaque transformation réussie affiche un texte / du HTML

ñ Sélectionetitération sur les nœuds

§ Format du fichier

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ...

</xsl:stylesheet>

(28)

Transformations XML

Du format de données au format de présentation

§ Des données XML vers la présentation HTML ñ Transformations

‚ Balises HTML mélangées aux balises de transformation ñ Chaque transformation réussie affiche un texte / du HTML ñ Sélectionetitération sur les nœuds

§ Format du fichier

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ...

</xsl:stylesheet>

(29)

Transformations XML

Du format de données au format de présentation

§ Des données XML vers la présentation HTML ñ Transformations

‚ Balises HTML mélangées aux balises de transformation ñ Chaque transformation réussie affiche un texte / du HTML ñ Sélectionetitération sur les nœuds

§ Format du fichier

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

...

</xsl:stylesheet>

(30)

Transformations XML

Les expressions XPath

§ Sélectionner des nœuds dans l’arbreXML

‚ Chemins (à l’image du CSS et des URLs)

Absolus:/noeud1/noeud2

Relatifs:noeud1/noeud2

Partout://noeud1

Attributs:noeud1@attribut

‚ Prédicats (critères)

Utilisation de crochets :/noeud1[condition]

Valeurs de nœuds ou d’attributs

Numéro, nombre, ordre des enfants

‚ Opérateurs

Concaténation

Caractères (majuscules, minuscules)

‚ …

ñ Mécanisme complexe mais puissant

(31)

Transformations XML

Les expressions XPath

§ Sélectionner des nœuds dans l’arbreXML

‚ Chemins (à l’image du CSS et des URLs)

Absolus:/noeud1/noeud2

Relatifs:noeud1/noeud2

Partout://noeud1

Attributs:noeud1@attribut

‚ Prédicats (critères)

Utilisation de crochets :/noeud1[condition]

Valeurs de nœuds ou d’attributs

Numéro, nombre, ordre des enfants

‚ Opérateurs

Concaténation

Caractères (majuscules, minuscules)

‚ …

ñ Mécanisme complexe mais puissant

(32)

Transformations XML

Les expressions XPath

§ Sélectionner des nœuds dans l’arbreXML

‚ Chemins (à l’image du CSS et des URLs)

Absolus:/noeud1/noeud2

Relatifs:noeud1/noeud2

Partout://noeud1

Attributs:noeud1@attribut

‚ Prédicats (critères)

Utilisation de crochets :/noeud1[condition]

Valeurs de nœuds ou d’attributs

Numéro, nombre, ordre des enfants

‚ Opérateurs

Concaténation

Caractères (majuscules, minuscules)

‚ …

ñ Mécanisme complexe mais puissant

(33)

Transformations XML

Les expressions XPath

§ Sélectionner des nœuds dans l’arbreXML

‚ Chemins (à l’image du CSS et des URLs)

Absolus:/noeud1/noeud2

Relatifs:noeud1/noeud2

Partout://noeud1

Attributs:noeud1@attribut

‚ Prédicats (critères)

Utilisation de crochets :/noeud1[condition]

Valeurs de nœuds ou d’attributs

Numéro, nombre, ordre des enfants

‚ Opérateurs

Concaténation

Caractères (majuscules, minuscules)

‚ …

ñ Mécanisme complexe mais puissant

(34)

Transformations XML

Les expressions XPath

§ Sélectionner des nœuds dans l’arbreXML

‚ Chemins (à l’image du CSS et des URLs)

Absolus:/noeud1/noeud2

Relatifs:noeud1/noeud2

Partout://noeud1

Attributs:noeud1@attribut

‚ Prédicats (critères)

Utilisation de crochets :/noeud1[condition]

Valeurs de nœuds ou d’attributs

Numéro, nombre, ordre des enfants

‚ Opérateurs

Concaténation

(35)

Transformations XML

Appliquer un squelette (template)

§ Syntaxe

<xsl:template match="expression">

...

</xsl:template>

ñ Sélectionne un nœud dans l’arbre selon l’expression

§ Applique les transformations XSLT

(36)

Transformations XML

Appliquer un squelette (template)

§ Syntaxe

<xsl:template match="expression">

...

</xsl:template>

ñ Sélectionne un nœud dans l’arbre selon l’expression

§ Applique les transformations XSLT

(37)

Transformations XML

Itérer sur les données (for-each)

§ Syntaxe

<xsl:for-each select="expression">

...

</xsl:for-each>

ñ Répète un traitement sur des nœuds

§ Contenu exécuté pour chaque nœud sélectionné

§ L’expression est un chemin XPath

(38)

Transformations XML

Itérer sur les données (for-each)

§ Syntaxe

<xsl:for-each select="expression">

...

</xsl:for-each>

ñ Répète un traitement sur des nœuds

§ Contenu exécuté pour chaque nœud sélectionné

§ L’expression est un chemin XPath

(39)

Transformations XML

Afficher des valeurs (value-of)

§ Syntaxe

<xsl:value-of select="expression" />

ñ Récupère une donnée du XML

§ La valeur résultante peut-être

‚ Le contenu d’un nœud (dont nœuds internes)

‚ La valeur d’un attribut (@attribut)

(40)

Transformations XML

Afficher des valeurs (value-of)

§ Syntaxe

<xsl:value-of select="expression" />

ñ Récupère une donnée du XML

§ La valeur résultante peut-être

‚ Le contenu d’un nœud (dont nœuds internes)

‚ La valeur d’un attribut (@attribut)

(41)

Transformations XML

Ordonner les données (sort)

§ Syntaxe

<xsl:sort select="expression" order="ascending"

data-type="text" lang="fr" />

ñ Ordonne des nœuds sélectionnés

§ À l’intérieur de for-each

§ Selon la donnée

‚ data-type="text" : lexicographie (langue, majuscules)

‚ data-type="number": numérique

(42)

Transformations XML

Ordonner les données (sort)

§ Syntaxe

<xsl:sort select="expression" order="ascending"

data-type="text" lang="fr" />

ñ Ordonne des nœuds sélectionnés

§ À l’intérieur de for-each

§ Selon la donnée

‚ data-type="text" : lexicographie (langue, majuscules)

‚ data-type="number": numérique

(43)

Transformations XML

Tester les données (if)

§ Syntaxe

<xsl:if test="expr1=expr2">

...

</xsl:if>

ñ Exécute le contenu si le test est vrai

§ Tests basé sur des expressions

§ Plusieurs tests possibles

‚ =: égalité des expressions évaluées

&lt; : test numérique si expr1<expr2

&gt; : test numérique si expr1>expr2

§ Peut souvent être fait à l’aide des prédicats

(44)

Transformations XML

Tester les données (if)

§ Syntaxe

<xsl:if test="expr1=expr2">

...

</xsl:if>

ñ Exécute le contenu si le test est vrai

§ Tests basé sur des expressions

§ Plusieurs tests possibles

‚ =: égalité des expressions évaluées

&lt; : test numérique si expr1<expr2

&gt; : test numérique si expr1>expr2

§ Peut souvent être fait à l’aide des prédicats

(45)

Transformations XML

Tester les données (if)

§ Syntaxe

<xsl:if test="expr1=expr2">

...

</xsl:if>

ñ Exécute le contenu si le test est vrai

§ Tests basé sur des expressions

§ Plusieurs tests possibles

‚ =: égalité des expressions évaluées

&lt; : test numérique si expr1<expr2

&gt; : test numérique si expr1>expr2

§ Peut souvent être fait à l’aide des prédicats

(46)

Transformations XML

Élément HTML (element)

§ Syntaxe

<xsl:element name="monelement">

...

</xsl:element>

ñ Insère un élément HTML

§ Permet d’y ajouter des attributs

§ Par exemple :

<xsl:element name="p"> Mon paragraphe

</xsl:element>

Génère :

<p>Mon paragraphe</p>

(47)

Transformations XML

Élément HTML (element)

§ Syntaxe

<xsl:element name="monelement">

...

</xsl:element>

ñ Insère un élément HTML

§ Permet d’y ajouter des attributs

§ Par exemple :

<xsl:element name="p"> Mon paragraphe

</xsl:element>

Génère :

<p>Mon paragraphe</p>

(48)

Transformations XML

Élément HTML (element)

§ Syntaxe

<xsl:element name="monelement">

...

</xsl:element>

ñ Insère un élément HTML

§ Permet d’y ajouter des attributs

§ Par exemple :

<xsl:element name="p">

Mon paragraphe

</xsl:element>

Génère :

(49)

Transformations XML

Attribut HTML (attribute)

§ Syntaxe

<xsl:attribute name="monattribut">

...

</xsl:attribute>

ñ Insère un attribut dans un élément HTML

§ Par exemple :

<xsl:element name="a">

<xsl:attribute name="href"> http://www.inalco.fr

</xsl:attribute> Lien vers l'Inalco

</xsl:element>

Génère :

<a href="http://www.inalco.fr">Lien vers l'INALCO</a>

(50)

Transformations XML

Attribut HTML (attribute)

§ Syntaxe

<xsl:attribute name="monattribut">

...

</xsl:attribute>

ñ Insère un attribut dans un élément HTML

§ Par exemple :

<xsl:element name="a">

<xsl:attribute name="href">

http://www.inalco.fr

</xsl:attribute>

Lien vers l'Inalco

(51)

Transformations XML

Variable XSL (attribute)

§ Syntaxe

<xsl:variable name="mavariable" select="expression">

...

</xsl:variable>

ñ Enregistre une variable à utiliser plus tard

ñ La variable peut ensuite être utilisée avec $mavariable

§ Par exemple :

<xsl:variable name="puissance" select="expression">

<xsl:value-of select="moteur/puissance" />

</xsl:variable> ...

<xsl:value-of select="$puissance" />

(52)

Transformations XML

Variable XSL (attribute)

§ Syntaxe

<xsl:variable name="mavariable" select="expression">

...

</xsl:variable>

ñ Enregistre une variable à utiliser plus tard

ñ La variable peut ensuite être utilisée avec $mavariable

§ Par exemple :

<xsl:variable name="puissance" select="expression">

<xsl:value-of select="moteur/puissance" />

</xsl:variable>

...

Références

Documents relatifs

Cоветские власти тогда не отреагировали заметным образом на нарушение принципа первенства между братскими республиками, считая, по-видимому, что издание на

 &lt;title&gt; et &lt;/title&gt; : informent votre navigateur qu'il s'agit du titre de votre page; ce titre sera placé dans la barre tout au-dessus de votre navigateur; ces

Vous venez de créer votre première page HTML ...Facile non ? :-) La plupart du temps une balise supplémentaire vient de greffer entre les balises &lt;head&gt;&lt;/head&gt;, c'est

Il est affiché dans la barre de titre du

À lire : Apprendre HTML5 diapo-papier ; Langage CSS diapo-papier ; Vérifier la validité avec le W3C diapo-papier 1 Structure d’une page web - En utilisant les ressources mises à

Une façon simple d’y arriver est de créer un fond d’écran avec les bornes pour une résolution de 800x600 pixels et de 1024x768 pixels. IFT1147 -

_parent : remplace le document de définition du frameset _top : remplace toutes les frames de la fenêtre ouverte. •

Cela peut se faire aussi dans le menu courant avec. la commande : {x 1 ,...,x n } Ñ List 1 On peut l’afficher dans le menu courant en