45
/travaux-dirigés /semaine 2 Dans ce TP, il s'agit de commencer à utiliser un logiciel spécialisé pour faire du XML, de rechercher les fonctionnalités permettant de manipuler les concepts vus en cours jusque là, et en particulier, d'expérimenter comment les propriétés "bien formée" et "valide" sont testées. Les ordinateurs de travail sont des Mac sous système OS 10.5. Les logiciels utilisés sont : oXygen-Editor pour travailler sur les fichiers XML (et donc les DTD et XSD), Firefox pour visualiser les fichiers XML. Concrêtement, il s'agit pour la propriété "bien formé", les fichiers XML produits précédement sont testés par l'outil adhoc, et le cas échéant, le code doit être modifié jusqu'à ce qu'il soit bien formé ; pour la propriété "valide", après avoir échangé les feuilles de styles mise au point par chacun des étudiant sur le fichier XML de son voisin, et observé le résultat, de trouver les outils qui permettent de calculer une DTD qui soit représentative de toute une classe de documents, et de restreindre la DTD apprise automatiquement sur le fichier XML pour pouvoir prévenir en avance si le fichier de style pourra être utilisé pour le fichier XML d'un autre étudiant et donner des résultats similaires à ceux attendus. Finalement, le fichier DTD est converti en schéma XML (.xsd) et la classe de document restreinte un peu plus finement en le modifiant. Quelques copies d'écran et explications sont fournies dans la rubrique /LicPro-XML/logiciels /oXygen-Editor/ de ce site. Sur le plan des concepts, le but du TP est de se rendre compte au travers de l'utilisation du logiciel oXYgen, de ce que signifie chacune de ces 2 qualités “bien formé” et “Valide”, fondamentales dans l'utilisation du langage XML. Un compte-rendu de TP est attendu pour mémoriser le contenu de ces travaux. CR-sem 2-ABourguignon.pdf CR-sem 2-AHely.pdf CR-sem 2-BAngebault.doc CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf CR-sem 2-TJankowski.pdf CR-sem2-PThery.pdf CR_sem 2-ELamourre.pdf CR_sem 2-TPineau.pdf DTD et schémas XML avec oXygen 1 http://www.tiprof.fr/LicPro-XML/travaux-dirig%C3%A9s/semaine%202/

DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

  • Upload
    lehanh

  • View
    220

  • Download
    2

Embed Size (px)

Citation preview

Page 1: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

/travaux-dirigés/semaine 2

Dans ce TP, il s'agit de commencer à utiliser un logiciel spécialisé pour faire du XML, derechercher les fonctionnalités permettant de manipuler les concepts vus en cours jusque là, et enparticulier, d'expérimenter comment les propriétés "bien formée" et "valide" sont testées.

Les ordinateurs de travail sont des Mac sous système OS 10.5. Les logiciels utilisés sont :

oXygen-Editor pour travailler sur les fichiers XML (et donc les DTD et XSD),Firefox pour visualiser les fichiers XML.

Concrêtement, il s'agit

pour la propriété "bien formé", les fichiers XML produits précédement sont testés par l'outiladhoc, et le cas échéant, le code doit être modifié jusqu'à ce qu'il soit bien formé ;pour la propriété "valide", après avoir échangé les feuilles de styles mise au point parchacun des étudiant sur le fichier XML de son voisin, et observé le résultat, de trouver lesoutils qui permettent de calculer une DTD qui soit représentative de toute une classe dedocuments, et de restreindre la DTD apprise automatiquement sur le fichier XML pourpouvoir prévenir en avance si le fichier de style pourra être utilisé pour le fichier XML d'unautre étudiant et donner des résultats similaires à ceux attendus.Finalement, le fichier DTD est converti en schéma XML (.xsd) et la classe de documentrestreinte un peu plus finement en le modifiant.

Quelques copies d'écran et explications sont fournies dans la rubrique /LicPro-XML/logiciels/oXygen-Editor/ de ce site.

Sur le plan des concepts, le but du TP est de se rendre compte au travers de l'utilisation dulogiciel oXYgen, de ce que signifie chacune de ces 2 qualités “bien formé” et “Valide”,fondamentales dans l'utilisation du langage XML.

Un compte-rendu de TP est attendu pour mémoriser le contenu de ces travaux.

CR-sem 2-ABourguignon.pdf

CR-sem 2-AHely.pdf

CR-sem 2-BAngebault.doc

CR-sem 2-FRaulet.pdf

CR-sem 2-JMatray.pdf

CR-sem 2-JRousseaux.pdf

CR-sem 2-TJankowski.pdf

CR-sem2-PThery.pdf

CR_sem 2-ELamourre.pdf

CR_sem 2-TPineau.pdf

DTD et schémas XML avec oXygen

1http://www.tiprof.fr/LicPro-XML/travaux-dirig%C3%A9s/semaine%202/

Page 2: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

1

Objectifs du TP

• Prendre en main le logiciel dédié au XML, <oXygen/>

• Utiliser le debugger intégré à oXygen pour vérifier un document XML

• Comprendre et se soumettre aux normes "bien formé" et "valide"

• Générer et modifier une DTD et un Schéma XML

Logiciels utilisés

• <oXygen/> Editor (version Mac OS X)

• Safari

• Firefox

Plan

I - Vérification de la syntaxe, XML "bien formé" • Introduction • Définition XML "bien formé" • <oXygen/> Editor ®, prise en main • <oXygen/> Editor ®, outil de vérification de la forme du XML 2 - Création d'une DTD, XML "valide" • Définition "XML Valide" • Pour valider notre XML ... • Création de la DTD • Réécriture de notre DTD •3 - Création d'un Schéma XML • Introduction • Transformation de notre DTD en XSD • Syntaxe XSD • Exemple de contrainte possible

XMLCompte-Rendu de T.P. 2

XML "bien formé", XML "valide"DTD et Schéma XML

Familiarisés avec la syntaxe XML, nous allons tenter désormais, au travers des fonctionnalités d'un logiciel dédié à l'édition XML, de générer des documents "bien formés" et "valides". A partir d'un document "bien formé" nous allons apprendre à écrire la DTD ou le schéma XML.

23 novembre 2009HELY AdrienLicence Professionnelle

Page 3: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

2

4IntroductionIl s'agit dans cette première étape d'utiliser les outils intégrés du logiciel <oXygen/> Editor® pour vérifier le bonne forme de notre document XML (le CV réalisé lors du premier TP) et, le cas échéant, corriger les erreurs pour qu'il devienne "bien formé".

4Définition XML "bien formé"Nous avons déjà abordé cette notion lors du premier TP. Pour rappel, le World Wide Web Consortium (W3C) qui en charge de la standardisation du XML, a défini une liste de critères qui doivent impérativement être satis-faits pour qu'un document soit considéré comme "bien formé". Ces critères concernent uniquement la syntaxe du docu-ment :

• Les documents XML doivent avoir un élément racine

• Les éléments XML doivent avoir une balise de fermeture

• Les balises sont "case sensitive" (sensible à la casse)

• Les éléments XML doivent être positionnés correctement

• Les valeurs d'attribut XML doivent toujours être entre guillemets

4<oXygen/> Editor ®, prise en mainCe logiciel est un puissant éditeur de XML et des lan-gages qui lui sont associés (XSD, HTML, XSL, DTD, etc.)

Ses fonctionnalités sont nombreuses, et nous n'utilise-ront qu'une petite partie d'entre elles.

Petit état des lieux des avantages que l'on remarque dès l'ouverture d'un fichier :

Un code couleur automatique permet de différencier les différents éléments de la syntaxe XML (PCDATA, balises, attributs, déclarations ...)

Une autre fonction utile : la complétion, qui permet entre autre de gagner du temps et d'éviter les erreurs lors de l'écriture.

Le logiciel propose d'afficher l'arbre, la structure du document.

4<oXygen/> Editor ®, outil de vérification de la forme du XML

Intéressons-nous maintenant à cette fonctionnalité de vérification de la syntaxe.

Cette icône dans la barre d'outils (ou alors XML > "Vérifier que le document soit bien formé" ou encore Pomme+Shift+W) permet d'éxécuter la vérification auto-matique.

Si le document comporte des anomalies de syntaxe, le logiciel inscrira alors une liste d'erreurs explicite à corri-ger.

Si, au contraire, le document ne comporte pas d'anoma-lies, il sera considéré comme "bien formé" (well-formed) et le logiciel ne retournera aucune erreur mais affichera plutôt en bas à droite le message :

I - Vérification de la syntaxe, XML "bien formé"

Page 4: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

4Définition XML "valide"Le XML valide est un XML "bien formé" (qui répond donc à toutes les contraintes de syntaxe précédemment évoquées) et dont la structure respecte une DTD (ou un schéma XML).

4Pour valider notre XML ...Le logiciel intégre une fonctionnalité de vérification du XML valide accessible via l'icône :

<oXygen/> se refuse à valider notre CV en xml en l'état.

Il nous affiche en effet, le message :

Il va donc nous falloir créer une DTD puis l'associer à notre document XML pour le rendre "valide"

4Création de la DTD41ère méthode :Le xml ouvert, on clique sur Outils > Générer/Convertir Schéma …

Dans la boîte de dialogue qui s'ouvre on renseigne :• en entrée : le format xml et le chemin de notre CV.xml• en sortie : XML 1.0 DTD

L'avantage de cette méthode réside dans le fait que nous obtenons une DTD relativement précise (pas trop large)

42nde méthode :La seconde méthode est à privilégier.

Le xml ouvert, on clique sur Document > Document XML > Enregistrer la structure du document

Avec cette seconde méthode, nous obtenons une DTD trop large, qui comporte des "ou" (barre verticale l ) par-tout. A nous de la retravailler manuellement pour qu'elle coincïde à nos besoins.

En revanche cette méthode permet d'associer automati-quement le XML avec sa DTD; le logiciel ajoutant auto-matiquement la ligne suivante dans le prologue du XML :

<!DOCTYPE cv SYSTEM "cv.dtd"> ("cv" correspond ici à l'élé-ment racine du XML)

4Réécriture de notre DTDQuelle que soit la méthode choisie pour générer la DTD, il est impératif de la modifier pour qu'elle soit en parfaite cohérence avec la logique de notre document.

Il est d'ailleurs préférable de choisir la seconde méthode et ainsi partir d'une DTD trop large pour la contraindre au fur et à mesure.

La DTD va permettre de définir un ensemble de règles pour la structure d'un document XML et la hiérarchisa-tion des données. C'est dans le DTD que l'on va définir les balises (éléments,nœuds) pouvant être utilisées dans le document XML, auxquelles on pourra éventuellement adjoindre une définition d'attributs La DTD est tout simplement un modèle servant à définir votre langage de balises.

4Les ELEMENTSPour déclarer un élément (correspondant à une balise) utilisable dans le xml. on utilise la ligne :

<!ELEMENT nom_de_la_balise ...>

Pour déclarer des éléments fils on utilise une séquence entre paranthèse juste après le nom de la balise :

<!ELEMENT etatcivil (civilite,nom,prenom,situfam,datenais)>civilite,nom,prenom etc. sont des éléments fils du noeud "etatcivil"

3

2 - Création d'une DTD, XML "valide"

Page 5: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

4

<!ELEMENT nom_elmt_parent (sous_elmt1, sous_elmt2, ...)>

La virgule " , " (équivalent d'un ET logique) dans la sé-quence implique que tous les éléments fils sont obliga-toires et dans l'ordre où ils sont déclarés.

<!ELEMENT nom_elmt_parent (sous_elmt1 | sous_elmt2 ...)>

La barre verticale " l " (équivalent d'un OU logique) dans la séquence implique qu'un seul des éléments peut être utilisés (sans être obligé d'utiliser tous les autres).

<!ELEMENT nom_elmt_parent (sous_elmt1?, sous_elmt2, ...)>

Le signe " ? " permet de rendre un élément optionnel, il sera présent 0 ou 1 fois

<!ELEMENT nom_elmt_parent (sous_elmt1+, sous_elmt2, ...)>

Avec le signe " + " l'élément sera présent 1 ou plusieurs fois.

<!ELEMENT nom_elmt_parent (sous_elmt1*, sous_elmt2, ...)>

Avec le signe " * " l'élément sera présent 0, 1 ou plusieurs fois

<!ELEMENT element (#PCDATA)>

(#PCDATA) indique que l'élément défini contient une chaîne de caractères.

<!ELEMENT element EMPTY>

EMPTY indique que l'élément est un élément vide

4Les ATTRIBUTS

Les attributs de notre document XML seront définis à l'aide de ATTLIST, on peut définir un plusieurs attributs par éléments et préciser leurs valeurs par défaut :

<!ATTLIST élément nom_d'attribut valeur_par_défaut nom_d'attribut valeur_par_défaut .... >On peut également contraindre l'attribut à une liste de valeur possible :<!ATTLIST élément nom_d'attribut (valeur 1 l valeur 2 l ...)>

#REQUIRED sert à préciser que la valeur doit obligatoire-ment être indiquée.

Voici un extrait de la DTD obtenue et retravaillée pour notre CV :<?xml encoding="UTF-8"?> <!ELEMENT cv (identite,fonction,formation,expprof,divers)> <!ATTLIST cv xmlns CDATA #FIXED ''> <!ELEMENT identite (etatcivil,contact)> <!ATTLIST identite xmlns CDATA #FIXED ''> <!ELEMENT formation (diplome)+> <!ATTLIST formation xmlns CDATA #FIXED ''> <!ELEMENT expprof (poste)+> <!ATTLIST expprof xmlns CDATA #FIXED ''> <!ELEMENT divers (langues,informatique,permis)> <!ATTLIST divers xmlns CDATA #FIXED ''> <!ELEMENT etatcivil (civilite,nom,prenom,situfam,datenais)> <!ATTLIST etatcivil xmlns CDATA #FIXED ''> <!ELEMENT contact (adresse,teleph,adelect)> <!ATTLIST contact xmlns CDATA #FIXED ''> <!ELEMENT diplome (anneeobt,niveau,intitule,etablissement,mention)> <!ATTLIST diplome xmlns CDATA #FIXED '' cadre CDATA #REQUIRED cursus CDATA #REQUIRED> <!ELEMENT poste (fonction,debut,fin,entreprise)> <!ATTLIST poste xmlns CDATA #FIXED '' type CDATA #REQUIRED> <!ELEMENT langues (langue)+> <!ATTLIST langues xmlns CDATA #FIXED ''> <!ELEMENT informatique (langages)> <!ATTLIST informatique xmlns CDATA #FIXED ''> <!ELEMENT permis EMPTY> <!ATTLIST permis xmlns CDATA #FIXED ''> <!ELEMENT civilite (#PCDATA)> <!ATTLIST civilite xmlns CDATA #FIXED ''> <!ELEMENT prenom (#PCDATA)> <!ATTLIST prenom xmlns CDATA #FIXED ''> <!ELEMENT situfam (#PCDATA)> <!ATTLIST situfam xmlns CDATA #FIXED ''> <!ELEMENT datenais (#PCDATA)> <!ATTLIST datenais xmlns CDATA #FIXED ''>

...

...

...

Page 6: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

4IntroductionNous l'avons vu, si la DTD permet de définir les balises et les attributs utilisés dans le XML, elle reste limité en ce qui concerne les contraintes. En permettant de définir un domaine de validité pour la valeur d'un élément, le schéma XML se différencie.

Une autre différence réside dans le fait que contraire-ment au DTD qui s'écrit en SGML, le Schéma va s'écrire en XML. Dès lors, le XML sera défini par du XML, on pourra parler d'un langage auto-récursif.

Pour ce TP, le Schéma de définition XML sera enregistré dans un fichier externe au format XSD (XSD = eXtensible Schema Definition), puis appelé dans le document cv XML en remplaçant la balise racine <cv> par :

<cv xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd">

4Transformation de notre DTD en XSDDanx <oXygen/>, à l'aide de l'outil "Générer/convertir schéma" on sélectionne en entrée notre DTD puis en sortie le format de fichier XML Schéma

Le logiciel convertit automatiquement notre DTD en XSD

4Syntaxe XSDXSD = eXtensible Schema Definition

4Entête et espace de nom xml :Ci-dessous voici l'entête de notre fichier xsd. C'est ici que l'espace de nom sera défini. L'espace de nom déclaré par l'attribut xmlns (pour xml namespace) fait référence à une URL pointant vers le W3C. C'est grâce à cette décla-ration que l'on pourra utiliser des préfixes devant le nom des éléments ( on utilisera par exemple ici le prefixe "xs"). Si un préfixe est utilisé, il implique que l'élément qui le suit à un sens précis et reconnu par le parseur que l'on utilisera. <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> Rq: on placera à la fin du document (</xs:schema>)

4Déclarer un élément :Pour déclarer un élément on utilise "xs:element name=": <xs:element name="identite">

Si l'élément est prédisposé à contenir une chaîne de caractères, on écrira <xs:element name="prenom" type="xs:string"/>

on peut également forcer le contenu à une date, un nombre, etc.

Pour préciser la structure du document, c'est à dire définir la hierarchie, on déclarera les éléments fils sous l'élément parent de cette marnière :

<xs:element name="parent"> <xs:complexType> <xs:element ref="fils1"> <xs:element ref="fils2"> ... </xs:complexType> </xs:element>

4Déclarer un attribut :Pour déclarer un attribut :<xs:attributeGroup name="attlist.adelect"> <xs:attribute name="type"/> </xs:attributeGroup>

4Exemple de contrainte possiblePour montrer à quel point le XSD permet une définition précise des contraintes, nous avons décidé de limiter le nombre d'entrées de numéro de téléphone à 3 n° au maximum.

La ligne de définition de l'élément "teleph"<xs:element minOccurs="0" maxOccurs="unbounded" ref="teleph"/>sera remplacé par :<xs:element minOccurs="0" maxOccurs="3" ref="teleph"/>

5

3 - Création d'un Schéma XML

Page 7: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Bourguignon Adrien Licence Professionnelle: flux numérique, édition et production d'imprimé.

Tp oxygene

Une fichier xml bien formé consiste à avoir une bonne syntaxe, un logiciel comme oxygène est capable, sans connaître les balises de dire si le fichiers est bien écrit. En effet, il regarde si les balises ouvertes sont bien fermés et si des '«' n'ont pas été oublié.

Comment créer une DTD ?(avec oxygène)

Dans oxygene, on peu réaliser une dtd grâce au logiciel et à un outil intitulé: générer/convertir schémas.

Qu'est ce qu'une DTD ?Littéralement, la DTD signifie « Document Type Definition », soit en français « définition de type de document ». La DTD permet de définir un modèle descriptif de structuration, comme un arbre généalogiques, des données contenues dans le document. Elle aide à organiser les données de manière normalisée et permet de partager des fichiers XML. La DTD ne fait pas partie du document XML. Elle vient le compléter pour que les données contenues dans ce document XML soient organisées de manière normalisée et puissent être partagées suivant un modèle commun pour le partage de documents XML.A quoi sert une DTD ?Une DTD définit un modèle de données, qui structure un document XML selon des règles bien définies. L’idée est de définir une structure commune à un ensemble d’utilisateurs et de programmateurs de documents XML, qui partagent cette structure et qui peuvent échanger de cette manière aisément les documents XML puisque ceux-ci ont une

Page 8: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

structure de base qui est commune.

Voici la DTD:

Une fois la DTD crée, on a pour CV la ligne suivante:<!ELEMENT cv (#PCDATA | fonction | identite | photo | formation | exprof | divers)*>,or ici on ne veut de pcdata car il n'y aura aucun CV avec du texte juste après cette balise, alors il faut l'écrire comme suit:<!ELEMENT cv (fonction | identite | photo | formation | exprof | divers)*>

,ensuite, on souhaite ajouter les balises contenu dans CV or ici nous avons soit l'un ou soit l'autre, alors il faut remplacer les barres vertical par des virgules, qui consiste à dire « et ensuite »Le point d'interrogation signifie que l'on peut avoir divers ou pas.

<!ELEMENT cv (fonction, identite, photo, formation, exprof, divers?)*>

La ligne ci-dessous signifie que l'on veut dans cv, fonction 'et ensuite' identité, 'et ensuite' photo, 'et' 'soit' formation 'et' exprof 'ou' formation 'ou' exprof, 'et ensuite' divers 'ou pas':<!ELEMENT cv (fonction, identite, photo,((formation, Exprof) | formation | exprof), divers?)*>

Sur cette ligne, on peut voir l'utilisation simultané du ou et de ou pas, on alors dans informatique on a logiciel 'ou pas' 'ou' language 'ou pas'.<!ELEMENT informatique (logiciel? | language?)>

Page 9: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Sur cette ligne, on a contact avec que des 'et' mais on peu avoir plusieurs numéros de téléphone et plusieurs email:<!ELEMENT contact (adresse, telephone*, email*)>On peu également transformer la DTD en schéma:

Il faut aller dans outils, puis générer convertir et sélectionner les points comme suit:

Dans ce cas, nous avons régler le nombre de fois que peu apparaître le numéros de téléphone soit 0 ou 3 fois:

Page 10: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

-1-

XML Compte Rendu 2Théry PERSYN

Objectif : Réaliser un CV en utilisant le language de programmation XML sous Oxygen.

Après avoir testé le fichier CSS de notre voisin, en changeant le nom du fichier CSS à appel-ler dans notre fichier XML, nous téléchargeons le logiciel Oxygen Editor afin de l’installer.

Définition :Oxygen XML Editor est un éditeur XML, debugger XSLT, qui visualise et édite des arbores-cences.

La première étape que l’on va effectuer sous oxygen après avoir ouvert notre fichier XML sera de créer un fichier DTD.

Définition :La Document Type Definition (DTD), ou Définition de Type de Document, est un document permettant de décrire un modèle de document SGML ou XML.Une DTD indique les noms des éléments pouvant apparaître et leur contenu, c’est-à-dire les sous-éléments et les attributs. En dehors des attributs, le contenu est spécifié en indi-quant le nom, l’ordre et le nombre d’occurrences autorisées des sous-éléments. L’ensemble constitue la définition des hiérarchies valides d’éléments et de texte. En revanche, les DTD ne permettent pas de poser des contraintes sur la valeur du texte comme « le contenu de l’élément X est un entier en décimal », ou encore «dans l’élément Y, toutes les séquences de blancs sont équivalentes à un seul espace».

Pour créer le fichier DTD on suit les chemins suivants :

Document - Document XML - Apprendre la structure - Enregistrer la structure

Page 11: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

-2-

L’ensemble des lignes de comandes du document DTD décrivent l’odre et le nombre des paramètres. On peut ainsi les modifier selon nos besoins. Les principales fonctions que l’on va changer dans le fichier DTD sont :

| = ou , = et ? = ou pas * = 0 ou plusieurs + = 1 ou plusieurs

Page 12: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

-3-

Par exemple nous avons modifié la ligne suivante :

<!ELEMENT cv (#PCDATA | fonction | identite | ... | divers)*>en <!ELEMENT cv (fonction, indentite ((formation, expprof ) | formation | expprof ), divers ?)*>

Avec : #PCDATA = texte

A partir de notre fichier DTD on va générer un fichier XSD qui va définir un schéma. On va créer ce fichier grâce au menu ‘‘Génerer/Convertir schéma’’.

Page 13: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

-4-

Le schéma générer par le fichier XSD nous permet d’observer en détail toute l’arborescence de notre CV.xml :

Page 14: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Angebault Baptiste le 23/11/2009Licence professionnelle flux numérique

Compte-rendu du TP2 : OXYGENE XML

Le logiciel Oxygène xml ; est capable de dire si un document est bien formé ou non.Le logiciel est capable de dire si ce document est bien formé, sans lire les balises, enfonction de la structure du document.

- Au cours de ce TP, nous avons échanger, par binôme le « cv » en « .xml »- Création d’un document DTD, à partir du document xml échangé.

- On voit que le fichier DTD à bien été pris en compte :

- On s’assure que le document DTD est bien valide

- Dans le fichier DTD, à la ligne :

on supprime « #PCDATA » et on remplace les « | » qui signifient : fonction OUidentité OU formation OU expprof OU divers, par des « , » qui signifient des « ETADDITION ».On ajoute le « ? » qui signifie que la catégorie « divers » est optionnelle, elle seraaffichée ou pas.

Page 15: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

- On s’assure que le document xml est toujours bien formé après lesmodifications effectuées.

- « #PCDATA » signifie qu’il y a du texte sans balises. Par défaut ceci se metautomatiquement, il faut donc enlever cette inscription dès lors que le texte estcomprit à l’intérieur de balises.

- Dans cette ligne, on a remplacé les « | » par des virgules puisque l’onsouhaite avoir toutes ces informations : l’adresse, le ou les numéros detéléphone, la ou les email

- Dans la ligne suivante du document DTD « * » que l’on a plusieurs numérosde téléphones, ainsi que plusieurs email. L’opération sera donc répéter pourautant de n° de téléphone et d’email, qu’il y a.

- Dans cette ligne, on a la encore supprimer #PCDATA qui était inutile

- Puis on réalise de nouveau la même opération pour « poste »

- On s’assure que le document xml est toujours bien formé après lesmodifications effectuées.

- On procède à l’échange des fichiers DTD, pour voir si la mise en page desfichiers est compatible sur un autre ordinateur. On s’aperçoit alors que lefichier n’est pas compatible. En effet une balise est appeler « situationfamilliale » dans un fichier et « situation fam » dans l’autre.

- On convertit alors notre fichier DTD en schéma de façon à pouvoir visualiserle shéma DTD, Ee passant par le menu « Outil > générer/convertir schéma »

Page 16: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

- On obtient alors un schéma de format « .xsd » qui a cette forme :

Page 17: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

- En utilisant l’onglet texte en bas du logiciel oxygène peut définir uneoccurrence minimum et maximum pour des balises. On décide alors de définirune occurrence maximale de 3 pour les balises téléphone et email de lacatégorie contacts

- Et voici comment cette occurrence est schématisée :

Page 18: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Module 2 xml

Lamourre Étienne

Compte rendu T.P 2 : oXygen

Séance du 23 novembre 2009

LebutdecetteséancedeT.PétaitladécouvertedulogicieloXygen,lesdocumentsDTDainsiqueleformatdefichierXSD.LelogicieloXygenestunéditeurdefichierXML.Ilpermetdemodifieretcontrôlerundocumentpoursavoirs’ilestbienforméetvalide.IlpermetaussidegénérerdesfichiersDTDdécrivantlastructuredudocument.

I-Vérification du fichierPour ce TP, nous avons utilisé le fichier XML que nous avions créé lors du TP précédent. Il s’agit d’un CV.Nous avons donc ouvert ce document dans oXygen afin de contrôler qu’il soit correct, c’est à dire valide et bien formé.

La norme XML n’impose pas l’utilisation d’une DTD pour un document XML, mais elle impose par contre le respect des règles de base de la norme XML.On parlera alors de : • document valide pour un document XML comportant une DTD • document bien formé pour un document XML répondant aux règles de base du XML (syntaxe bonne)

Le logiciel intègre des outils permettant de vérifier ces points automatiquement et de nous avertir en cas d’erreur.

a-bien formé

Lorsque l’analyse du document est terminée, on peu voir en bas de la fenêtre, cette infor-mation s’afficher.

a-valide

Le logiciel nous indique alors que notre document n’est pas valide car il n’existe pas de DTD qui lui est associé. Une DTD permet de décrire le document en décrivant la liste des balises qui le compose. C’est la structure du document.

Cette icône permet de vérifier que le document est bien formé

Cette icône permet de vérifier que le document est valide

Page 19: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Module 2 xml

II-Création de la DTD

Une fois la DTD est crée, nous avons du la modifier pour que l’affichage du CV soit plus cohérent.À certains endroit, nous avons remplacé les «|» par des «,» afin de conserver obligatoi-rement l’ordre que nous avions décrit.Prenons l’exemple de la ligne 40, en y insé-rant des virgule, on force la séquence qui est indiquée il affichera alors la fonction et ensuite l’identité et ensuite la formation, etc.Nous avons aussi supprimé les «#PCDATA» de certaines lignes. Cet élément est utiliser pour indiquer que ce qui suit est uniquement des données chiffrée. Or, dans certains cas, ce qui suivait cet élément ne l’était pas.Enfin, nous avons ajouté des «?». Cela per-met d’ajouter l’élément qui le précède que lorsqu’il a des infos à afficher.Par exemple, nous avons placé un «?» après divers, cela permet de n’afficher cette par-tie du CV que si elle contient quelque cho-se. Si il n’y a pas d’informations à afficher (pas de balise divers) cette partie ne sera pas affichée.

Une fois la DTD créée et associée au XML, nous vérifions que le document soit valide.

Si cela s’affiche en bas de la fenetre apres la verification du logiciel : le document est valide et le DTD est bien attribué au profil.

III-Création du XSDUn fichier XSD est un langage de description de format de document XML permettant de définir la structure d’un document XML.La connaissance de la structure d’un document XML permet notamment de vérifier la validité de ce document. Un fichier de description de structure (XML Schéma Définition en anglais, ou fichier XSD) est donc lui-même un document XML.

partie du fichier xsd décrivant la structure du document

Page 20: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Module 2 xml

IV-Modification du XSDLe XSD est un document XML, il est donc modifiable. Ainsi, nous avons cherché une solution permettant l’affichage de trois numéros de téléphone maximum dans les coordonnées du titu-laire du CV ainsi que dans les coordonnées des établissements où il a travaillé et étudié.Nous avons donc cherché la ligne se référant aux coordonnées téléphoniques et avons ajouté la valeur «3» après «max0ccurs».Afin de ne pas surcharger le CV de coordonnées, nous avons aussi appliqué ce réglage aux adresses électroniques. On remarque aussi qu’il est possible d’indiquer un nombre minimum de numéros de téléphones.

Page 21: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Compte Rendu XML - 3

Ojectif: Explorer oxygen à travers des mots clés et création de la dtd du fi chier XML créé lors de la séance précédente.

On a commencé par vérifi er si le fi chier XML était bien formé.Pour cela le programme vérifi e entre autres si les balises sont bien fermées, que toutes les valeurs des attribues sont bien entre quote etc. Si en bas de la fenêtre il y a un carré vert avec «le document est bien formé», c’est que c’est bon. Dans notre cas ça l’est.

Page 22: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

ETAPE 1: Création de la DTD

Nous avons dans un deuxième temps créer la DTD: Document -> Document XML -> Enregistrer la structure du document

Page 23: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Ce qui nous donne:

On va essayer à présent de réduire les champs. On peut remarquer que certains attribues on un +, cela signifi e qu’il peut en avoir plusieurs.Une fois la DTD de construite on peut valider le document à l’aide de l’icone de la feuille blanche avec un signe rouge.

Page 24: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

ETAPE 2: Optimisation de la DTD par la réduction des champs

Une fois la DTD de créé nous l’avons modifi é de telle sorte à ce qu’elle se rapproche de la mise en page établie par le fi chier CSS.

<!ELEMENT cv (#PCDATA | fonction | identite | photo | formation | expprof | divers)*>

Notre css n’étant pas prévu pour qu’une personne ait du texte, on enlève #PCDATA. Ensuite pour forcer la suite des attribues on met une virgule à la place des | qui s’imbolisent des ou.Par exemple on peut mettre divers de manière facultative en mettant juste après ?le fi chier dtd restera valide qu’il ait ou pas de balise divers

<!ELEMENT cv ( fonction , identite , photo , formation , expprof , divers?)*>

Si on veut soit formation tout court ou expprof ou les deux mais dans ce cas il devra suivre l’ordre formation puis expprof

<!ELEMENT cv ( ((fonction,Expprof) | formation | expprof) | identite | photo | formation divers?)*>L’étoile symbolise 0 ou plusieurs. Pour imposer 1 seul fois, il faut mettre un +

On enlève #PCDATA pour les balises qui n’ont pas de texte mais qui contiennent des balises.

<!ELEMENT contact (adresse , teleph* , adelect*)>

Ici ça va répéter seulement teleph et adelect (car ce sont les deux qui ont une * adresse n’en a pas) si il y a plusieurs numéro ou adresse electronique sans répéter adresse.Pour répéter les 3 à la fois, il faut mettre * après la grande parenthèse.

Il faut après toutes ces modifi cations re-vérifi er si la DTD est valide. Pour cela il faut cliquer sur l’icone de la feuille avec le trait rouge.

ETAPE 3: Transformation de la DTD en schéma

Pour cela il faut aller dans générer/convertir schéma (Outil -> générer/convertir schéma). Il faut bien avoir sélectionner au préalable l’onglet de la DTD. Ne surtout pas créer un schéma de sa DTD en étant sur l’onglet XML.

Page 25: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Une fois le schéma de généré il est possible de le visualiser et modifi er de plusieurs manière différentes:

Mode design:

Mode Texte:

Page 26: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Nous pouvons encore intervenir et modifier différente chose. Pour cela il est conseillé de passer en mode texte.

Par exemple, si on veut limiter le nombre de téléphone à 3. Il faut remplacer unbounded par 3

On peut passer en mode design pour constater que la modification a bien été apportée.

Page 27: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

1 Licence professionnel flux numérique

MATRAYJérémy

Compte renduOxygen

Ce TD consiste à ouvrir notre fichier XML créé sur TextWrangler sur le logiciel Oxygen et à y effectuer des modifications.

1 - Création du fichier DTD

On ouvre notre fichier .XML dans Oxygen en prenant le style.css de notre voisin afin de vé-rifer que celui s’applique correctement. Pour cela on modifie la ligne qui spécifie le fichier .css à aller chercher en paramétrant notre nouveau fichier.Ensuite on créer un fichier DTD grace au menu document qui va créer un nouveau fichier.

Page 28: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

2

Ce fichier aura la particularité d’avoir l’ensemble des lignes de commande en ligne par li-gne. On modifie les lignes auquel on doit apporter une modification on l’on remplace les « ou « par des « et « .

2 - Conversion en schéma

On converti ensuite notre fichier en schéma W3C afin d’avoir un style graphique plus ap-proprié.

Page 29: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Compte rendu sur le logiciel Oxygen Objectif de la séance :

- Découvrir le logiciel Oxygen XML Editor - Découvrir les documents DTD - Découvrir le format de fichier XSD

Introduction :

Le logiciel Oxygen XML Editor est un éditeur de fichier XML qui permet de contrôler et de modifier un document et de savoir s’il est bien formé et s’il est valide. Ce programme permet également de générer des fichiers DTD (Document Type Definition) qui décrivent la structure d’un document SGML ou XML.

TP : Nous avons commencé par télécharger le logiciel sur le site de l’éditeur. Ensuite, nous avons utilisé le fichier du CV que l’on avait crée en XML lors de la précédente séance. Dans le programme Oxygen, nous l’avons ouvert pour le contrôler et voir s’il est valide et bien formé. Ce logiciel possède des fonctions qui nous permettent de contrôler le fichier. S’il y a une erreur, le logiciel nous averti.

L’icône ci dessous permet de vérifier que le document est valide. La fenêtre permet de voir où se situe l’erreur.

Si le document est valide, il apparait ce message au bas de la fenêtre.

L’icône ci dessous permet de vérifier que le document est bien formé.

Page 30: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Une fois le fichier valide et bien formé, nous avons créé le fichier DTD. Pour cela, il faut ouvrir le fichier XML, cliquer sur outils/ Générer /Convertir Schéma.

Page 31: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Voici le fichier DTD qui a été généré.

Une fois ce fichier créé, nous avons dû le modifier pour que son affichage soit davantage cohérent. Nous avons remplacé les « (trait vertical) » par des « » , à la ligne 41, nous avons également inséré des virgules, cela nous a permis d’afficher tout d’abord la fonction ensuite l’identité et enfin la formation. Nous avons aussi supprimé les #PCDATA de quelques lignes. Ce PCDATA indique que ce sont des données chiffrées. Dans l’exemple du CV, certaines fois ce n’était pas des données chiffrées.

Page 32: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Enfin, nous avons vérifiés que le document soit toujours valide et que le DTD soit bien attribué au profil.

Nous avons créé un fichier XSD, c’est un langage de description de format de document

XML. Il s'agit d'une extension du nom d'un fichier qui comporte une définition XML Schema. Le format XSD est modifiable. Nous avons essayé d’afficher trois numéros de téléphone

au maximum dans les coordonnées de la personne et des établissements et entreprises où il a travaillé. Nous avons commencé par rechercher les lignes des coordonnées téléphoniques et après max0ccurs, nous avons ajouté un 3 et comme nombre minimum nous avons laissé 0. Nous avons ensuite fait la même chose avec les adresses mails.

Page 33: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Ensuite, nous avons voulus créer un schéma, pour cela il faut cliquer sur le menu

Document / Document XML/ Convertir schéma.

Le schéma est présenté en mode Design.

Ici, on peut voir l’arborescence du schéma, ainsi que les valeurs maximales et

minimales.

Page 34: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Thomas Jankowski Licence Pro Flux numériques

Page 35: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

XML : eXtensible Markup Lanquage

Le DTD :

La Document Type Definition ou Définition de Type de Document, est un document permettant de décrire un modèle de document de type SGML ou XML. c'est-à-dire une grammaire permettant de vérifier la conformité du document XML. La norme XML n'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par contre le respect exact des règles de base.

Un document suivant les règles de XML est appelé document bien formé. Un document XML possédant une DTD et étant conforme à celle-ci est appelé document valide.

Une DTD indique les noms des éléments pouvant apparaître et leur contenu, c'est-à-dire les sous-éléments et les attributs. En dehors des attributs, le contenu est spécifié en indiquant le nom, l'ordre, et le nombre de répétition. En revanche, les DTD ne permettent pas de poser des contraintes sur la valeur du texte comme « le contenu de l'élément X est un entier en décimal », ou encore «dans l'élément Y, toutes les séquences de blancs sont équivalentes à un seul espace».

Une DTD peut définir des entités générales. Celles-ci ont les rôles suivants :

- une référence à un fragment de document externe, typiquement un autre fichier, - une abréviation pour un fragment de texte répétitif, - un synonyme de caractère permettant des références par nom plutôt que par un code numérique.

Oxygen XML :

Pour la création de notre DTD nous avons utilisé lors du TP un logiciel qui est : Oxygene XML.

- Oxygen est un éditeur XML multi-plateformes pour le développement de document en utilisant des langages de tels que le XML, le XSD, le XSL ou encore le DTD.- Il offre aux utilisateurs un puissant environnement intégré de développement.- Basé sur JAVA, l'interface graphique d'utilisateur de l'éditeur XML est facile à utiliser et offre desfonctionnalités robustes pour l'édition, la gestion de projet et la validation de sources structurées.- Oxygen supporte la sortie vers de multiples formats cibles, dont : le PDF, le PS, l'HTML, le TXT et bien sûr le XML. - Oxygen est sans dout l'éditeur XML de choix pour les développeurs et toutes autres personnes qui demandent une sortie de haute qualitée avec un environnement flexible, une source unique, et un formatage structuré.

Page 36: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Une des interface de Oxygen XML Editor sur une plateforme de type Mac.

La même interface du logiciel mais cette fois-çi sur une plateforme Window.

Création d'un DTD dans Oxygéne :

Il existe deux méthodes pour la création d'un DTD :

- Première méthode :

Page 37: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Une fois le fichier XML ouvert dans Oxygen XML Editor, ouvrir l'onglet Outil puis Générer/Convertir Schéma...

La page suivante s'ouvre : - dans la partie droite de la fenêtre l'on y indique le format d'entrées (pour le TP nous aurons donc un document XML) et l'emplacement du fichier que l'on traite,- dans la partie de gauche de la fenêtre l'on y indique le format de sortie désiré (toujours dans le cadre du TP nous choisissons XML 1.0 DTD) et l'emplacement de reception du nouveau fichier.

Page 38: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Obtention du DTD de manière précise grâce à cette méthode.

- Deuxième méthode :

Une fois le document au format XML ouvert, ouvrir l'onglet DocuMent puis dans le menus ouvrir Document XML et pour finir dans le sous-menus ouvrir Enregistrer la structure du document.

Page 39: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Une fois le fenêtre ici présente ouverte sélectionner votre format (toujours DTD pour le TP) puis enregistrer votre transformation.

Dans cette version de la création du DTD le fichier obtenu est trop « large », mais en revanche dans cette méthode une déclaration s'insère automatiquement dans le document XML de type :

<!DOCTYPE cv SYSTEM "cv2.dtd">

Conversion du DTD en schéma :

Le XML Schema amène plusieurs différences avec les DTD. Il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD, en revanche, il ne définit pas des entités. XML Schema est un document au format XML, alors que les DTD sont des documents au format SGML.

Page 40: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

Comme pour la première méthode lors de la transformation d'un document XML au format DTD, on ouvre le DTD puis l'onglet Outils et ensuite on ouvre la fenêtre dans le menus qui s'intitule Générer/Convertir schéma...Il suffit alors pour terminer l'opération de sélectionner le format XML 1.0 DTD en entrée et W3M XML Schéma en format de sorti.

Le schéma permet d'affiner par la suite les contraintes liés au fichier.

Page 41: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

1

TP2 : Utilisation d'Oxygen

L'objectif du TP est de prendre en main le logiciel Oxygen en essayant de comprendre le fonctionnement de celui-ci.

Tout d'abord, nous avons testé deux fonctions, des plus utiles, du logiciel à savoir "bien formé" et

"valide" (j'ai dé� nit ces deux fonctions dans le compte-rendu 091116_TP1_cr_pineau). Nous avons donc ouvert notre � chier XML puis avons testé ce dernier avec ces deux fonctions. Nous obtenons un � chier "bien formé": cela est écrit en bas de page près d'un carré vert. En revanche, nous obtenons une erreur lorsque nous testons notre � chier avec la fonction "valide" : cela est dû au fait que nous n'avons pas créé de � chier DTD (structure de document qui décrit des balises).

L'étape suivante consiste donc à créer ce � chier DTD.Document / Document XML / Enregistrer la structure du document

On obtient donc un � chier de cette forme :

On obtient, par la suite, un � chier valide : cela est écrit en bas de page près d'un carré vert.

On peut donc ensuite apporter des contraintes au � chier DTD créé : - remplacer "|" par "," : cela permet d'imposer une séquence ; - supprimer "#PCDATA" : cela indique que la balise en question comporte du texte ; - mettre un "?" : pour que la balise apparaisse que s'il ya quelque chose dedans.

PINEAU � omas

Page 42: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

2

On prend l'exemple suivant :

La notation à l'intérieur de la parenthèse se traduit comme suit :pour a� cher soit "formation" et "exp_prof " en même temps ou soit que "formation" ou que "ex_prof ". On peut donc conclure que "|" a le rôle de "ou" et "," a le rôle de "et".

Nous avons essayé de remplacer notre � chier DTD par celui de notre voisin et lors de la validation du � chier XML, nous obtenons des messages d'erreurs.

Cela est dû au fait que nous avons pas mis les mêmes contraintes dans notre � chier DTD.

Ensuite, à partir du � chier DTD, on créé un � chier XSD :Outils / Générer / Convertir Schéma

Page 43: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

3

On obtient donc le � chier XSD suivant :

Pour avoir plusieurs fois "adresse", "tel" et "ad_elec" on peut modi� er le � chier XSD :

"minOccurs" et "maxOccurs" permettent de dé� nir le nombre minimum et maximum de répétition possible des balises "adresse" ,"tel" et "ad_elec".

Pour � nir, on assoscie le SLX avec le � chier XML du départ :Document / Document XML / Associer un schéma…

On peut donc constater que la première balise "CV" est modi� ée :

Page 44: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

1 Licence professionnel flux numérique

MATRAYJérémy

Compte renduOxygen

Ce TD consiste à ouvrir notre fichier XML créé sur TextWrangler sur le logiciel Oxygen et à y effectuer des modifications.

1 - Création du fichier DTD

On ouvre notre fichier .XML dans Oxygen en prenant le style.css de notre voisin afin de vé-rifer que celui s’applique correctement. Pour cela on modifie la ligne qui spécifie le fichier .css à aller chercher en paramétrant notre nouveau fichier.Ensuite on créer un fichier DTD grace au menu document qui va créer un nouveau fichier.

Page 45: DTD et schémas XML avec oXygen - tiprof.frtiprof.fr/LicPro-XML/travaux-dirigés/partie 2 : DTD et schéma... · CR-sem 2-FRaulet.pdf CR-sem 2-JMatray.pdf CR-sem 2-JRousseaux.pdf

2

Ce fichier aura la particularité d’avoir l’ensemble des lignes de commande en ligne par li-gne. On modifie les lignes auquel on doit apporter une modification on l’on remplace les « ou « par des « et « .

2 - Conversion en schéma

On converti ensuite notre fichier en schéma W3C afin d’avoir un style graphique plus ap-proprié.