La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 2 Documents web structurés en XML

Présentations similaires


Présentation au sujet: "Chapitre 2 Documents web structurés en XML"— Transcription de la présentation:

1 Chapitre 2 Documents web structurés en XML
Grigoris Antoniou Frank van Harmelen Chapter 2 A Semantic Web Primer

2 Exemple de HTML <h2>Non monotonic Reasoning: Context-
Dependent Reasoning</h2> <i>by <b>V. Marek</b> and <b>M. Truszczynski</b></i> <br>Springer 1993<br> ISBN Chapter 2 A Semantic Web Primer

3 Le même exemple en XML <livre>
<titre>Non monotonic Reasoning: Context- Dependent Reasoning</titre> <auteur>V. Marek</auteur> <auteur>M. Truszczynski</auteur> <publisher>Springer</publisher> <annee>1993</annee> <ISBN> </ISBN> </livre> Chapter 2 A Semantic Web Primer

4 HTML par rapport à XML: Similarités
Les deux utilisent des balises (par ex. <h2> et </annee>) Les balises peuvent être emboîtées (balises incluant d'autres) L'homme peut facilement lire et interpréter les représentations HTML et XML … mais quid des machines? Chapter 2 A Semantic Web Primer

5 Problèmes liés à l'interprétation automatisée des documents HTML
Prenons le cas d'un (robot) agent logiciel cherchant à retrouver les noms des auteurs d'un livre les noms des auteurs peuvent apparaître immédiatement après le titre ou tout de suite après le mot "de" y a-t-il deux auteurs ? ou un seul, nommé "V. Marek et M. Truszczynski”? Chapter 2 A Semantic Web Primer

6 HTML par rapport à XML: Information structurelle
Les documents HTML ne contiennent pas d‘ information structurelle : les éléments du document et leurs relations XML est plus facilement accessible par la machine parce que chaque élément d'information est décrit les relations sont aussi définies par la structure à emboîtement par ex. les balises <auteur> apparaissent dans les balises <livre> qui ainsi décrivent les propriétés de ce livre précis. Chapter 2 A Semantic Web Primer

7 HTML par rapport à XML: Information structurelle (2)
Une machine qui traite un document XML est en mesure de déduire que : l'élément ‘auteur’ se réfère à l'élément ‘livre’ inclus au lieu de s'en tenir à des considérations de proximité XML permet d'imposer des contraintes à des valeurs Par ex. une année doit être un nombre de quatre chiffres Chapter 2 A Semantic Web Primer

8 HTML par rapport à XML: Formatage
La représentation HTML apporte plus que celle de XML: le formatage du document est également décrit L'utilisation principale d'un document HTML est d'afficher l'information: il doit définir le formatage XML: séparation du contenu de son affichage la même information peut être affichée de différentes manières Chapter 2 A Semantic Web Primer

9 HTML par rapport à XML: autre exemple
En HTML <h2>Relation masse-énergie</h2> <i> E = M × C2 </i> En XML <equation> <sens>Relation masse énergie</sens> <gauche> E </gauche> <droit> M × C2 </droit> </equation> Chapter 2 A Semantic Web Primer

10 HTML par rapport à XML: utilisation différente des balises
Dans les deux documents HMTL les balises sont les mêmes En XML, elles sont complètement différentes Les balises HTML définissent l'affichage : couleur, listes ... Les balises XML ne sont pas fixes: elles sont définies par l'utilisateur XML méta-langage à balises : langage servant à déterminer les langages à balises ! Chapter 2 A Semantic Web Primer

11 Vocabulaires XML Les applications web doivent convenir de vocabulaires communs pour pouvoir communiquer et coopérer Les communautés et le monde des affaires définissent ainsi leurs vocabulaires spécialisés Mathématiques (MathML) Bio-informatique (BSML) Ressources Humaines (HRML) Chapter 2 A Semantic Web Primer

12 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms (Dénominations) Accès, requête de documents XML : XPath Transformations : XSLT Chapter 2 A Semantic Web Primer

13 Le langage XML Un document XML est constitué de : un prologue
un certain nombre d'éléments un épilogue (option non discutée)(?) Chapter 2 A Semantic Web Primer

14 Prologue d'un document XML
Le prologue comporte: une déclaration XML et une référence en option à des documents de structuration externes <?xml version="1.0" encoding="UTF-16"?> <!DOCTYPE book SYSTEM “book.dtd"> Chapter 2 A Semantic Web Primer

15 Eléments XML Ce dont parle le document XML : Un élément comporte:
par ex. livres, auteurs, éditeurs Un élément comporte: une balise d'ouverture le contenu une balise de fermeture <lecteur>David Billington</lecteur> Chapter 2 A Semantic Web Primer

16 Eléments XML (2) Les noms des balises sont presque libres
Le premier caractère doit être une lettre, un tiret inférieur ou un double point Mais aucun nom de balise ne peut commencer par la chaîne "xml" quelle que soit la casse Par ex. “Xml”, “xML” Chapter 2 A Semantic Web Primer

17 Contenu des éléments XML
Le contenu peut être du texte, d'autres éléments ou encore rien du tout <lecteur> <nom>David Billington</nom> <telephone> +61 − 7 − </telephone> </lecteur> En l'absence de contenu, l'élément est réputé vide et est abrégé comme suit: <lecteur/> for <lecteur></lecteur> Chapter 2 A Semantic Web Primer

18 Attributs XML Un élément vide n'est pas forcément sans signification
Il peut avoir certaines propriétés en termes d'attributs Un attribut est une paire valeur-nom à l'intérieur de la balise d'ouverture d'un élément <lecteur nom="David Billington" telephone="+61 − 7 − "/> Chapter 2 A Semantic Web Primer

19 Attributs XML: exemple
<commande comNo="23456" client="John Smith" date="Octobre 15, 2002"> <item itemNo="a528" quantité="1"/> <item itemNo="c817" quantité="3"/> </commande> Chapter 2 A Semantic Web Primer

20 Même exemple sans usage des attributs au sein de la balise d’ouverture
<commande> <commandeNo>23456</comandeNo> <client>John Smith</client> <date>Octobre 15, 2002</date> <item> <itemNo>a528</itemNo> <quantité>1</quantité> </item> <itemNo>c817</itemNo> <quantité>3</quantité> </commande> Chapter 2 A Semantic Web Primer

21 Eléments XML par rapport aux attributs
Les attributs peuvent être remplacés par des éléments Utiliser des éléments ou des attributs est affaire de choix Mais les attributs ne peuvent pas être emboîtés Chapter 2 A Semantic Web Primer

22 Autres composants des documents XML
Commentaires Morceau de texte que doit ignorer le parseur (outil d'analyse syntaxique) <!-- This is a comment --> Instructions de traitement (PIs) Définissent les connexions de procédure <?stylesheet type="text/css" href="mystyle.css"?> Chapter 2 A Semantic Web Primer

23 Documents XML bien formés
Documents avec une syntaxe correcte Quelques règles de syntaxe: Une seul élément racine Chaque élément contient une balise d'ouverture et une balise de fermeture correspondante Les balises ne peuvent pas se chevaucher <auteur><nom>Lee Hong</auteur></nom> Les attributs à l'intérieur d'un élément ont des noms uniques Les noms d'éléments et de balises doivent être autorisés Chapter 2 A Semantic Web Primer

24 Les modèles arborescents de documents XML: un exemple :
< > <en-tête> <de nom="Michael Maher" <à nom="Grigoris Antoniou" <sujet>Où reste ton brouillon ?</sujet> </en-tête> <corps> Grigoris, où est le projet d'article que tu m'as promis la semaine dernière? </corps> </ > Chapter 2 A Semantic Web Primer

25 Les modèles arborescents de documents XML : exemple 2 :
Racine En-tête Corps De A Sujet Nom Adresse Nom Adresse Grigoris, où est le projet d'article que tu m'as promis la semaine dernière ? Michael Maher Michaelmaher @cs.gu.edu.au Grigoris Antoniou cs.unibremen.de Où reste ton brouillon ? Chapter 2 A Semantic Web Primer

26 Les modèles arborescents de documents XML
La représentation arborescente d'un document XML a la forme d'un arbre étiqueté dans un certain ordre il n'y a qu'une seule racine il n'y a pas de cycle chaque noeud non racine a exactement un seul parent chaque noeud a un nom l'ordre des éléments est important ... mais l'ordre des attributs n'est pas important Chapter 2 A Semantic Web Primer

27 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

28 Structuration des documents XML
Définir tous les noms d'éléments et d'attributs susceptibles d'être utilisés Définir la structure quelles valeurs un attribut peut prendre quels éléments peuvent ou doivent apparaître avec d'autres éléments, etc. Lorsque ces informations de structuration existent, le document peut être validé Chapter 2 A Semantic Web Primer

29 Structuration des documents XML (2)
Un document XML est valide s'il est correctement formé s'il respecte les informations de structuration qu'il utilise Il existe deux moyens de définir la structure des documents XML: les DTD (plus ancien et restrictif) XML Schema (propose de possibilités accrues) Chapter 2 A Semantic Web Primer

30 DTD: définition de type d'élément
<lecteur> <nom>David Billington</nom> <telephone> +61 − 7 − </telephone> </lecteur> DTD pour les éléments ci-dessus (et tous les éléments lecteur ): <!ELEMENT lecteur (nom,telephone)> <!ELEMENT nom (#PCDATA)> <!ELEMENT telephone (#PCDATA)> Chapter 2 A Semantic Web Primer

31 Signification de DTD Les types d'éléments lecteur, nom, et telephone peuvent être utilisés dans le document Un élément lecteur contient un élément nom et un élément telephone, dans cet ordre de (séquence) L'élément nom et l'élément telephone peuvent avoir n'importe quel contenu Dans les DTD, #PCDATA est le seul type atomique (insécable) pour les éléments (?) Chapter 2 A Semantic Web Primer

32 DTD: disjonction dans les définitions de type d'élément
On exprime que l'élément lecteur contient soit un élément nom soit un élément phone de la manière suivante: <!ELEMENT lecteur (nom|telephone)> L'élément lecteur contient un élément nom et un élément telephone dans n'importe quel ordre. <!ELEMENT lecteur((nom,telephone)|(telephone,nom))> Chapter 2 A Semantic Web Primer

33 Exemple d'élément XML <commande commandeNo="23456"
client="John Smith" date="Octobre 15, 2002"> <item itemNo="a528" quantite="1"/> <item itemNo="c817" quantite="3"/> </commande> Chapter 2 A Semantic Web Primer

34 DTD correspondante <!ELEMENT commande (item+)>
<!ATTLIST commande commandeNo ID #REQUIRED client CDATA #REQUIRED date CDATA #REQUIRED> <!ELEMENT item EMPTY> <!ATTLIST item itemNo ID #REQUIRED quantite CDATA #REQUIRED commentaires CDATA #IMPLIED> Chapter 2 A Semantic Web Primer

35 Commentaires sur cette DTD
Le type d'élément item est défini comme étant vide + (après item) est un opérateur de cardinalité: ?: apparaît zéro ou une seule fois *: apparaît zéro ou plusieurs fois +: apparaît une ou plusieurs fois Aucun opérateur de cardinalité ne signifie exactement une seule fois Chapter 2 A Semantic Web Primer

36 Commentaires sur ce DTD (2)
En plus de définir les éléments, on définit les attributs Ceci se fait dans une liste d'attributs contenant: le nom du type d'élément auquel la liste s'applique une liste des triplets nom d'attribut, type d'attribut et type de valeur Nom d'attribut: nom pouvant être utilisé dans un document XML faisant appel à une DTD Chapter 2 A Semantic Web Primer

37 DTD: types d'attributs Semblables aux types de données prédéfinies mais avec un choix restreint Les principaux types sont CDATA, chaîne (suite de caractères) ID, nom unique dans l'ensemble du document XML IDREF, référence à un autre élément avec un attribut ID portant la même valeur que l'attribut IDREF IDREFS, série des IDREF (v1| |vn), énumération de toutes les valeurs possibles Restrictions: aucunes dates, plages de nombres, etc. Chapter 2 A Semantic Web Primer

38 DTD : types de valeur d'attribut
#REQUIRED l'attribut doit apparaître chaque fois que le type d'élément est présent dans le document XML #IMPLIED la présence de l'attribut est optionnelle #FIXED "value" tout élément doit avoir cet attribut "value" ceci définit la valeur par défaut de l'attribut Chapter 2 A Semantic Web Primer

39 Référencement avec IDREF et IDREFS
<!ELEMENT famille (personne*)> <!ELEMENT personne (nom)> <!ELEMENT nom (#PCDATA)> <!ATTLIST personne id ID #REQUIRED mere IDREF #IMPLIED pere IDREF #IMPLIED enfant IDREFS #IMPLIED> Chapter 2 A Semantic Web Primer

40 Document XML respectant la DTD
<famille> <personne id="bob" mere="mary" pere="peter"> <nom>Bob Marley</nom> </personne> <personne id="bridget" mere="mary"> <nom>Bridget Jones</nom> <personne id="mary" children="bob bridget"> <nom>Mary Poppins</nom> <personne id="peter" children="bob"> <nom>Peter Marley</nom> </famille> Chapter 2 A Semantic Web Primer

41 La DTD pour l'élément e-mail
<!ELEMENT (en-tête,corps)> <!ELEMENT en-tête (from,to+,cc*,sujet)> <!ELEMENT from EMPTY> <!ATTLIST from nom CDATA #IMPLIED adresse CDATA #REQUIRED> <!ELEMENT to EMPTY> <!ATTLIST to nom CDATA #IMPLIED Chapter 2 A Semantic Web Primer

42 La DTD pour l'élément e-mail (2)
<!ELEMENT cc EMPTY> <!ATTLIST cc nom CDATA #IMPLIED adresse CDATA #REQUIRED> <!ELEMENT sujet (#PCDATA)> <!ELEMENT coprs (texte,attachment*)> <!ELEMENT texte (#PCDATA)> <!ELEMENT attachment EMPTY> <!ATTLIST attachment encoding (mime|binhex) "mime" file CDATA #REQUIRED> Chapter 2 A Semantic Web Primer

43 Parties intéressantes de DTD
L'élément d'en-tête head contient (dans l'ordre): l'élément from au moins un élément to zéro ou plusieurs éléments cc un élément sujet Dans les éléments from, to et cc l'attribut nom n'est pas nécessaire l'attribut adresse est toujours indispensable Chapter 2 A Semantic Web Primer

44 Parties utilitaires de DTD (2)
L'élément corps (body) contient un élément texte éventuellement suivi de plusieurs éléments attachment L'attribut encoding d'un élément attachment doit avoir la valeur “mime” ou “binhex” “mime” est la valeur par défaut Chapter 2 A Semantic Web Primer

45 Remarques concernant les DTD
Une DTD peut être interprétée comme un Extended Backus-Naur Form (EBNF) <!ELEMENT (en-tête,corps)> est équivalent à := head body Définitions possibles récursives dans les DTD <!ELEMENT bintree ((bintree root bintree)|emptytree)> Chapter 2 A Semantic Web Primer

46 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

47 XML Schema Langage beaucoup plus riche pour définir la structure des documents XML La syntaxe Tts (?) est basée sur XML - il n'est pas nécessaire d'écrire des outils distincts Réutilisation et affinement des schémas - étendre ou supprimer des schémas existants Jeu de types de données sophistiqué par comparaison aux DTD (qui ne supportent que des strings (les chaînes) Chapter 2 A Semantic Web Primer

48 XML Schema (2) Un XML Schema est un élément à balise d'ouverture de type <schema "http://www.w3.org/2000/10/XMLSchema" version="1.0"> Structure des éléments schéma Types d'éléments et d'attributs utilisant les types de données Chapter 2 A Semantic Web Primer

49 Types d'éléments <element nom="email"/>
<element nom="head" minOccurs="1" maxOccurs="1"/> <element nom="to" minOccurs="1"/> Contraintes de cardinalité: minOccurs="x" (valeur par défaut 1) maxOccurs="x" (valeur par défaut 1) Généralisations de *,?,+ proposées par les DTD Chapter 2 A Semantic Web Primer

50 Types d'attributs <attribut nom="id" type="ID“ use="required"/>
< attribut nom="speaks" type="Language" use="default" value="en"/> Existence: use="x", où x peut être optionnel ou nécessaire Valeur par défaut: use="x" value="...", où x peut être par défaut ou fixe Chapter 2 A Semantic Web Primer

51 Types de données Il existe plusieurs types de données incorporées
types de données en chiffres: integer, Short etc. types de chaînes: string, ID, IDREF, CDATA etc. dates et types de données temporelles: time, Month etc. Il existe aussi des types de données définies par l'utilisateur les types simples qui ne peuvent pas utiliser des éléments ou des attributs types de données complexes qui peuvent les utiliser Chapter 2 A Semantic Web Primer

52 Types de données (2) Les types de données complexes se définissent au départ de données existantes par certains attributs (s'il y en a) et utilisent: séquence, suite d'éléments de types de données existantes (l'ordre est important) tout ensemble d'éléments qui doivent être présents (l'ordre n'est pas important) choix, ensemble d'éléments dont l'un sera choisi Chapter 2 A Semantic Web Primer

53 Exemple de type de données
<complexType nom="lecteurType"> <sequence> <element nom=“prénom" type="string" minOccurs="0“ maxOccurs="unbounded"/> <element nom="nom" type="string"/> </sequence> <attribute nom="titre" type="string" use="optional"/> </complexType> Chapter 2 A Semantic Web Primer

54 Extension de type de données
Des types de données existants peuvent être étendus à l'aide de nouveaux éléments ou attributs. Exemple: <complexType nom="extendedlecteurType"> <extension base="lecteurType"> <sequence> <element nom=" " type="string" minOccurs="0" maxOccurs="1"/> </sequence> <attribute nom="rank" type="string" use="required"/> </extension> </complexType> Chapter 2 A Semantic Web Primer

55 Type de données résultant
<complexType nom="extendedlecteurType"> <sequence> <element nom=“prenom" type="string" minOccurs="0" maxOccurs="unbounded"/> <element nom="nom" type="string"/> <element nom=" " type="string" minOccurs="0" maxOccurs="1"/> </sequence> <attribute nom="titre" type="string" use="optional"/> <attribute nom="rank" type="string" use="required"/> </complexType> Chapter 2 A Semantic Web Primer

56 Extension de type de données (2)
Une relation hiérarchique existe entre le type d'orgine et le type étendu Les occurrences du type étendu sont également celles du type d'origine Elles peuvent contenir des informations complémentaires mais pas moins, ni d'information de type erroné Chapter 2 A Semantic Web Primer

57 Restriction de type de données
Un type de données existant peut se voir restreint par l'adjonction de contraintes à certaines valeurs Restriction n'est pas l'inverse d'extension une restriction ne s'établit pas par suppression d'éléments ou attributs La relation hiérarchique suivante contient encore: les occurrences de type restreint sont également du type d'origine elles satisfont au moins les contraintes du type d'origine Chapter 2 A Semantic Web Primer

58 Exemple de restriction de type de données
<complexType nom="restrictedlecteurType"> <restriction base="lecteurType"> <sequence> <element nom=“prenom" type="string" minOccurs="1" maxOccurs="2"/> </sequence> <attribute nom="titre" type="string" use="required"/> </restriction> </complexType> Chapter 2 A Semantic Web Primer

59 Restriction des types de données simples
<simpleType nom="dayOfMonth"> <restriction base="integer"> <minInclusive value="1"/> <maxInclusive value="31"/> </restriction> </simpleType> Chapter 2 A Semantic Web Primer

60 Restriction des types de données: énumération
<simpleType nom="dayOfWeek"> <restriction base="string"> <enumeration value="Mon"/> <enumeration value="Tue"/> <enumeration value="Wed"/> <enumeration value="Thu"/> <enumeration value="Fri"/> <enumeration value="Sat"/> <enumeration value="Sun"/> </restriction> </simpleType> Chapter 2 A Semantic Web Primer

61 XML Schema: exemple de l'e-mail
<element nom=" " type=" Type"/> <complexType nom=" Type"> <sequence> <element nom="head" type="headType"/> <element nom="body" type="bodyType"/> </sequence> </complexType> Chapter 2 A Semantic Web Primer

62 XML Schema: exemple de l'e-mail (2)
<complexType nom="headType"> <sequence> <element nom="from" type="nomAddress"/> <element nom="to" type="nomAddress" minOccurs="1" maxOccurs="unbounded"/> <element nom="cc" type="nomAddress" minOccurs="0" maxOccurs="unbounded"/> <element nom="subject" type="string"/> </sequence> </complexType> Chapter 2 A Semantic Web Primer

63 XML Schema: exemple de l'e-mail (3)
<complexType nom="nomAddress"> <attribute nom="nom" type="string" use="optional"/> <attribute nom="address" type="string" use="required"/> </complexType> Similaire pour bodyType Chapter 2 A Semantic Web Primer

64 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms (Denomination) Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

65 Espaces de noms Un document XML peut utiliser plus d'une DTD ou schéma
Comme chaque document de structuration est développé de manière indépendante, des conflits de noms peuvent surgir La solution consiste à utiliser un préfixe différent pour chaque DTD ou schéma prefix:nom Chapter 2 A Semantic Web Primer

66 Exemple <vu:instructeurs xmlns:vu="http://www.vu.com/empDTD"
xmlns:gu="http://www.gu.au/empDTD" xmlns:uky="http://www.uky.edu/empDTD"> <uky:faculte uky:titre="assistant professeur" uky:nom="John Smith" uky:departement="Computer Science"/> <gu:academicStaff gu:titre="lecteur" gu:nom="Mate Jones" gu:ecole="Information Technology"/> </vu:instructeurs> Chapter 2 A Semantic Web Primer

67 Déclaration d'espaces de nom
Les espaces de noms sont déclarés à l'intérieur d'un élément et peuvent s'utiliser dans cet élément ou n'importe lequel de ses enfants (éléments et attributs) Une déclaration d'espaces de noms revêt la forme: xmlns:prefix="location" location est l'adresse de la DTD ou schéma Si aucun préfixe n'est spécifié: xmlns="location" location est utilisé par défaut Chapter 2 A Semantic Web Primer

68 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

69 Adressage et requête de documents XML
Dans les bases de données relationnelles, certaines parties peuvent en être sélectionnées et récupérées par SQL la même nécessité s'impose aux documents XML langages de requête: XQuery, XQL, XML-QL Le concept central des langages de requête XML est une expression de chemin d'accès définit comment atteindre un noeud ou un jeu de noeuds dans une représentation arborescente d'un document XML Chapter 2 A Semantic Web Primer

70 XPath XPath est au coeur des langages de requête XML
Langage d'adressage des parties d'un document XML travaille sur le modèle arborescent des données de XML possède une syntaxe non XML Chapter 2 A Semantic Web Primer

71 Types des expressions de chemins d'accès
Absolut (commençant à la racine de l'arbre) la syntaxe commence par le symbole / renvoie à la racine du document (située un niveau au-dessus de l'élément de base du document) Relatif à un noeud du contexte Chapter 2 A Semantic Web Primer

72 Exemple XML <library location="Bremen">
<auteur nom="Henry Wise"> <titre livre="Artificial Intelligence"/> <titre livre="Modern Web Services"/> <titre livre="Theory of Computation"/> </auteur> <auteur nom="William Smart"> <auteur nom="Cynthia Singleton"> <titre livre="The Semantic Web"/> <titre livre="Browser Technology Revised"/> </library> Chapter 2 A Semantic Web Primer

73 Représentation arborescente
Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

74 Exemples d'expression de chemins d'accès en XPath
Adresse tous les éléments auteur /library/auteur Adresse tous les éléments auteur enfants du noeud de l'élément library se trouvant juste sous la racine /t1/.../tn, où chaque ti+1 est un noeud enfant ti, un chemin d'accès au travers de la représentation arborescente Chapter 2 A Semantic Web Primer

75 Exemples d'expressions de chemins d'accès en XPath (2)
Adresse tous les éléments auteur //auteur // indique ici qu'il faut considérer tous les éléments du document et vérifier s'ils sont du type auteur Cette expression de chemin d'accès adresse tous les éléments auteur où qu'ils soient dans le document Chapter 2 A Semantic Web Primer

76 Exemples d'expressions de chemins d'accès en XPath (3)
Adresse les noeuds attributs d'emplacement à l'intérieur des noeuds éléments library Le sert à indiquer les noeuds attributs Chapter 2 A Semantic Web Primer

77 Exemples d'expressions de chemins d'accès en XPath (4)
Adresse tous les noeuds attributs titre dans les éléments livre où qu'ils soient dans le document et qui ont la valeur “Artificial Intelligence” Intelligence" Chapter 2 A Semantic Web Primer

78 Exemples d'expressions de chemins d'accès en XPath (5)
Adresse tous les livres ('livre') dans le titre "Artificial Intelligence" Intelligence"] Test dans la partie entre crochets: expression filtre restreint le jeu des noeuds adressés Différence avec la requête 4 la requête 5 adresse les éléments livre dont le titre répond à une certaine condition la requête 4 rassemble les noeuds attributs titre des éléments livre Chapter 2 A Semantic Web Primer

79 Représentation arborescente de la requête 4
Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

80 Représentation arborescente de la requête 5
Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

81 Exemples d'expressions de chemins d'accès en XPath (6)
Adresse le premier élément auteur dans le document XML //auteur[1] Adresse le dernier élément livre dans le premier noeud élément auteur dans le document //auteur[1]/livre[last()] Adresse tous les noeuds éléments livre sans l'attribut titre Chapter 2 A Semantic Web Primer

82 Forme générale des expressions de chemin d'accès
Une expression de chemin d'accès consiste en une série de pas séparés par des barres de fraction Un pas comprend Un spécificateur d'axe, Un test de noeud et en option, un prédicat Chapter 2 A Semantic Web Primer

83 Forme générale des expressions de chemin d'accès (2)
Un spécificateur d'axe détermine la relation d'arborescence entre les noeuds à adresser et le noeud contexte par ex. noeud parent, ancêtre, enfant (par défaut), sibling (noeud ayant le même parent immédiat), attribut // représente un tel spécificateur d'axe: descendant ou autonome Chapter 2 A Semantic Web Primer

84 Forme générale des expressions de chemin d'accès (3)
Un test de noeud spécifie quels noeuds adresser les tests de noeuds les plus courants sont les noms d'élément par ex. * adresse tous les noeuds éléments comment() adresse tous les noeuds commentaires Chapter 2 A Semantic Web Primer

85 Forme générale des expressions de chemin d'accès (4)
Prédicats (ou expressions filtres) sont en option et servent à affiner le jeu des noeuds adressés Par ex. l'expression [1] sélectionne le premier noeud [position()=last()] sélectionne le dernier noeud [position() mod 2 =0] sélectionne les noeuds pairs XPath a en réalité une syntaxe complète plus complexe. On ne représente ici qu'une syntaxe abrégée Chapter 2 A Semantic Web Primer

86 Sommaire Introduction Description détaillée de XML Structuration
les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

87 Affichage des documents XML
<auteur> <nom>Grigoris Antoniou</nom> <affiliation>University of Bremen</affiliation> </auteur> Peut être affiché de différentes manières: Grigoris Antoniou Grigoris Antoniou University of Bremen University of Bremen Chapter 2 A Semantic Web Primer

88 Feuilles de style Les feuilles de style peuvent être écrites en divers langages par ex. CSS2 (Cascading Style Sheets level 2) feuilles de style en cascade niveau 2 XSL (extensible stylesheet language) langage de feuille de style extensible XSL comprend un langage de transformation (XSLT) un langage de formatage tous deux sont des applications de XML Chapter 2 A Semantic Web Primer

89 Transformations XSL (XSLT)
XSLT définit les règles par lesquelles un document entré en XML est transformé en un autre document XML un document HTML un texte en clair Le document de sortie peut utiliser la même DTD ou schéma ou un vocabulaire complètement différent XSLT peut être utilisé indépendamment du langage de formatage Chapter 2 A Semantic Web Primer

90 XSLT (2) Déplacer les données et métadonnées d'une représentation XML à une autre On choisit XSLT lorsque les applications utilisant des DTD ou schémas différents doivent communiquer XSLT peut servir au traitement par machine du contenu sans se préoccuper de l'affichage de l'information à lire Dans l'exemple suivant, on utilise XSLT uniquement pour afficher les documents XML Chapter 2 A Semantic Web Primer

91 Transformation de XSLT en HTML
<xsl:template match="/auteur"> <html> <head><titre>Un auteur</titre></head> <body bgcolor="white"> <b><xsl:value-of select="nom"/></b><br> <xsl:value-of select="affiliation"/><br> <i><xsl:value-of select=" "/></i> </body> </html> </xsl:template> Chapter 2 A Semantic Web Primer

92 Résultat sur feuille de style
<html> <head><titre>Un auteur</titre></head> <body bgcolor="white"> <b>Grigoris Antoniou</b><br> University of Bremen<br> </body> </html> Chapter 2 A Semantic Web Primer

93 Remarques sur XSLT Les documents XSLT sont des documents XML
XSLT se place au-dessus de XML Le document XSLT définit un canevas ici, un document HTML avec certaines marques de réservation pour insérer le contenu xsl:value-of récupère la valeur d'un élément et la copie dans le document de cible il met un certain contenu dans le canevas Chapter 2 A Semantic Web Primer

94 Le canevas <html>
<head><titre>Un auteur</titre></head> <body bgcolor="white"> <b>...</b><br> ...<br> <i>...</i> </body> </html> Chapter 2 A Semantic Web Primer

95 Canevas auxiliaires On a un document XML avec des détails sur plusieurs auteurs Il est inutile de traiter chaque élément auteur séparément On définit plutôt un canevas spécial pour les éléments auteur qui sert de canevas principal Chapter 2 A Semantic Web Primer

96 Exemple de canevas auxiliaire
<auteurs> <auteur> <nom>Grigoris Antoniou</nom> <affiliation>University of Bremen</affiliation> </auteur> <nom>David Billington</nom> <affiliation>Griffith University</affiliation> </auteurs> Chapter 2 A Semantic Web Primer

97 Exemple de canevas auxiliaire (2)
<xsl:template match="/"> <html> <head><titre>auteurs</titre></head> <body bgcolor="white"> <xsl:apply-templates select="auteurs"/> <!-- Apply templates for auteurS children --> </body> </html> </xsl:template> Chapter 2 A Semantic Web Primer

98 Exemple de canevas auxiliaire (3)
<xsl:template match="auteurs"> <xsl:apply-templates select="auteur"/> </xsl:template> <xsl:template match="auteur"> <h2><xsl:value-of select="nom"/></h2> Affiliation:<xsl:value-of select="affiliation"/><br> <xsl:value-of select=" "/> <p> Chapter 2 A Semantic Web Primer

99 Cible pour plusieurs auteurs
<html> <head><titre>auteurs</titre></head> <body bgcolor="white"> <h2>Grigoris Antoniou</h2> Affiliation: University of Bremen<br> <p> <h2>David Billington</h2> Affiliation: Griffith University<br> </body> </html> Chapter 2 A Semantic Web Primer

100 Explication de l'exemple
xsl:apply-templates permet de faire correspondre tous les enfants du noeud contexte à l'expression de chemin d'accès choisi par ex. si le canevas actuel s'applique à /, l'élément xsl:apply-templates s'applique à l'élément racine autrement dit, l'élément auteurs (/ est placé au-dessus de l'élément racine) si le noeud contexte est l'élément auteurs, l'élément xsl:apply-templates select="auteur" permet d'appliquer le canevas de l'élément auteur à tous les enfants auteur de l'élément auteurs Chapter 2 A Semantic Web Primer

101 Explication de l'exemple (2)
C'est une bonne méthode que de définir un canevas pour chaque type d'élément dans le document même si aucun traitement particulier n'est appliqué à certains éléments, l'élément xsl:apply-templates doit être utilisé par ex. auteurs On travaille ainsi en partant de la racine vers les feuilles de l'arbre, et tous les canevas s'appliquent Chapter 2 A Semantic Web Primer

102 Traitement des attributs XML
Supposons que l'on veuille transformer en lui-même l'élément : <personne prenom="John" nom="Woo"/> Mauvaise solution: <xsl:template match="personne"> <personne prenom="<xsl:value-of nom="<xsl:value-of </xsl:template> Chapter 2 A Semantic Web Primer

103 Traitement des attributs XML (2)
Mal formé parce que les balises ne sont pas autorisées dans les valeurs des attributs On souhaite ajouter des valeurs d'attribut dans le canevas <xsl:template match="personne"> <personne </xsl:template> Chapter 2 A Semantic Web Primer

104 Transformation d'un document XML en un autre (?)
Grigorio Antonionou David Billington Auteur Nom Contact Racine Auteurs Institut University of Bremen Griffith Grigorio Antonionou David Billington Auteur Nom Contact Racine Auteurs Institut University of Bremen Griffith Chapter 2 A Semantic Web Primer

105 Transformation d'un document XML en un autre (2)
<xsl:template match="/"> <?xml version="1.0" encoding="UTF-16"?> <auteurs> <xsl:apply-templates select="auteurs"/> </auteurs> </xsl:template> <xsl:template match="auteurs"> <auteur> <xsl:apply-templates select="auteur"/> </auteur> Chapter 2 A Semantic Web Primer

106 Transformation d'un document XML en un autre (3)
<xsl:template match="auteur"> <nom><xsl:value-of select="nom"/></nom> <contact> <institution> <xsl:value-of select="affiliation"/> </institution> < ><xsl:value-of select=" "/></ > </contact> </xsl:template> Chapter 2 A Semantic Web Primer

107 Récapitulation XML est un méta-langage permettant à l'utilisateur de définir un balisage XML sépare le contenu et la structure du formatage XML est par lui-même le standard de représentation et d'échange des informations structurées sur le web XML est supporté par les langages de requête Chapter 2 A Semantic Web Primer

108 ... Dans les chapitres suivants
L'emboîtage des balises n'a pas de signification standard La sémantique des documents XML n'est pas accessibles à la machine, uniquement à l'homme La coopération et l'échange sont supportés pour autant qu'il y ait une compréhension sous-jacente partagée du vocabulaire XML convient bien à une coopération étroite où l'on utilise des vocabulaires liés à un domaine ou une communauté il ne convient pas aussi bien à la communication globale. Chapter 2 A Semantic Web Primer


Télécharger ppt "Chapitre 2 Documents web structurés en XML"

Présentations similaires


Annonces Google