• Aucun résultat trouvé

Td corrigé XML : Structure des documents pdf

N/A
N/A
Protected

Academic year: 2022

Partager "Td corrigé XML : Structure des documents pdf"

Copied!
1
0
0

Texte intégral

(1)

XML : Structure des documents

1. Syntaxe XML

Objectif: Cette section a pour objectif de vous initier aux documents XML Distinguez les noms XML correct des noms incorrect et corrigez les erreurs.

• <Drivers_License_Number>98 NY 32</Drivers_License_Number>

• <Driver's_License_Number>98 NY 32</Driver's_License_Number>

• <month-day-year>7/23/2001</month-day-year>

• <first name>Alan</first name>

• <àçttûä>øåú</àçttûä>

• <first_name>Alan</first_name>

• <month/day/year>7/23/2001</month/day/year>

• <_4-lane>I-610</_4-lane>

• <téléphone>011 33 91 55 27 55 27</téléphone>

• <4-lane>I-610</4-lane>

2. Document bien formés

Lisez les exemples suivants et vérifier si les documents XML sont bien formés.

• <?xml version="1.0" ?>

<top>

<item>Question 1<item answer="a">

<item>Question 2<item answer="b">

<item>Question 3<item answer="c">

</top>

• <?xml version="1.0" ?>

<text>

<font size='8pt'>petite police</font>

<font size='24pt'>grande police</font>

</text>

• <?xml version="1.0" ?>

<top> <item val=2/>

<item val=3/>

<item val=12/>

</top>

• <?xml version="1.0" ?>

<text>

<font small>Un petit texte</font>

<font big>Un grand texte</font>

</text>

• <?xml version="1.0" ?>

<test>

<elem att1= toto />

<elem att2= titi />

</test>

• <?xml version="1.0"?>

<a>

(2)

<b a="toto">Et hop</b>

</a>

<a>

<b a="titi">Voil_a</b>

</a>

• <?xml version="1.0"?>

<programme titre="Internet">

<ul>

<li>XML<li/>

<li>DTD<li/>

<li>API<li/>

<li>XSL<li/>

</ul>

</programme>

• <?xml version="1.0"?>

<a>

<b><c/></b><d></b>

</a>

• <?xml version="1.0"?>

<!DOCTYPE text [ <!ELEMENT text EMPTY> ]>

<text><bf>Titre</bf></text>

• <?xml version="1.0" ?>

<niveaux>

<truc>chose</truc>

<niveau index="1">

<truc> </truc>

</niveau>

<niveau index="2">

<truc attribut="chose"> </truc>

</niveau> </niveaux>

3. Creation d'un document

On souhaite écrire un livre en utilisant le formalisme XML.

I. Le livre est structuré en section, en chapitres et en paragraphes (au moins 2 pour chaque structures).

II. Le livre doit contenir la liste des auteurs (avec nom et prénom).

III. Tous les éléments doivent posséder un titre, sauf le paragraphe qui contient du texte.

IV. Proposez une structuration XML de ce document.

V. Vérifiez, à l’aide de l’éditeur, que votre document est bien formé.

VI. Attention : ne pas utiliser d’attributs ; l’encodage utilisé est ISO-8859-1 VII. Votre document sera nommé livre1.xml.

4. Création d'un document avec attributs et entités prédéfinis

On souhaite compléter la structure du document XML de l’exercice précédent par les attributs nom et prenom pour les auteurs et titre pour le livre, les sections et les chapitres.

I. Analysez la structure du nouveau document.

(3)

II. Y a-t-il des simplifications possibles ?

III. Vérifiez, à l’aide de l’éditeur, que votre document est bien formé.

IV. Placez dans 2 paragraphes un bloc de texte contenant l’extrait suivant :

<element id="10">&gt;</element>

V. Pour le premier paragraphe, employez les entités prédéfinies.

VI. Pour le deuxième paragraphe, employez une section CDATA.

5. Espace de noms

Il s’agit de créer un document sur la base de livre1.xml en respectant les points suivants : I. Mettez tous les éléments dans l’espace de noms http://www.masociete.com sans

utiliser d’espace de noms par défaut.

II. Mettez la deuxième section dans un espace de noms http://www.monentreprise.com.

III. Mettez le dernier paragraphe du dernier chapitre de la dernière section sans espace de noms.

6. Utilisation des attributs

L'utilisation des attributs doit être en adéquation avec les besoins des traitements. Le choix optimal dépendra de l'usage prévu d'un document et des outils utilisé pour sa création.

<cartes>

<personne>

<nom>Dupond</nom>

<prenom>Jean</prenom>

<bureau>

<compagnie>INRIA</compagnie>

<adresse>

<rue>Route des Lucioles</rue>

<nbr></nbr>

<post-code>F-06560</post-code>

<ville>Sophia Antipolis</ville>

<pays>France</pays></adresse>

<bureau-nbr>2506</bureau-nbr>

<telephone>+33.4.9365.7777</telephone><fax>+33.4.9365.7788</fax>

</bureau>

</personne>

<personne>

<nom>Michard</nom>

<prenom>Alain</prenom>

<bureau>

<compagnie>INRIA</compagnie>

<adresse>

<rue>Domaine de Voluceau</rue>

<nbr>BP 105</nbr>

<post-code>F-78153</post-code>

<ville>Le Chesnay Cedex</ville>

<pays>France</pays></adresse>

<bureau-nbr>3276</bureau-nbr>

<telephone>+33.1.3963.7777</telephone><fax>+33.1.3963.5114</fax>

</bureau>

</personne>

</cartes>

Ce document contient 2 cartes de visites professionnelles.

(4)

I. Donner un inconvénient et un avantage à ce type d'écriture.

II. Proposer une organisation différente.

Les corrections Ex1

• <Drivers_License_Number>98 NY 32</Drivers_License_Number>

Correction: Correct

• <Driver's_License_Number>98 NY 32</Driver's_License_Number>

Correction: Incorrect (apostrophe)

• <month-day-year>7/23/2001</month-day-year>

Correction: Correct

• <first name>Alan</first name>

Correction: Incorrect (présence d'un espace)

• <àçttûä>øåú</àçttûä>

Correction: Correct

• <first_name>Alan</first_name>

Correction: Correct

• <month/day/year>7/23/2001</month/day/year>

Correction: Incorrect (à cause des /)

• <_4-lane>I-610</_4-lane>

Correction: Correct

• <téléphone>011 33 91 55 27 55 27</téléphone>

Correction: Correct

• <4-lane>I-610</4-lane>

Correction: Incorrect (un nom XML ne commence pas par un chiffre)

(5)

EX2

Correction: Il comprend un entête XML du type Il existe un seul élément racine qui contient tous

les autres éléments Les balises sont correctement imbriquées : les balises ouvrantes ont une

balise fermante associée et il n'y a pas de chevauchement Le nom des balises est libre mais il

contient au moins une lettre Les attributs des balises, lorsqu'ils existent (ce n'est pas le cas), ont

obligatoirement une valeur qui doit toujours apparaître entre quotes

• <?xml version="1.0" ?>

<top>

<item>Question 1<item answer="a">

<item>Question 2<item answer="b">

<item>Question 3<item answer="c">

</top>

Correction: <item> n est pas fermé des attributs ne se mettent pas dans la balise fermante

• <?xml version="1.0" ?>

<text>

<font size='8pt'>petite police</font>

<font size='24pt'>grande police</font>

</text>

Correction: Bien formé

• <?xml version="1.0" ?>

<top> <item val=2/>

<item val=3/>

<item val=12/>

</top>

Correction: Manque des guillemets pour les attributs

• <?xml version="1.0" ?>

<text>

<font small>Un petit texte</font>

<font big>Un grand texte</font>

</text>

Correction: pas d'espaces dans les noms de balise (ou alors small est un attribut mais doit être suivi par affectation à une valeur)

• <?xml version="1.0" ?>

<test>

<elem att1= toto />

<elem att2= titi />

</test>

Correction: Bien formé, les attributs ne sont pas nécessaires

• <?xml version="1.0"?>

<a>

<b a="toto">Et hop</b>

</a>

<a>

<b a="titi">Voil_a</b>

(6)

</a>

Correction: Manque un élément Racine

• <?xml version="1.0"?>

<programme titre="Internet">

<ul>

<li>XML<li/>

<li>DTD<li/>

<li>API<li/>

<li>XSL<li/>

</ul>

</programme>

Correction: les balises fermantes ne sont pas bonnes </li>

• <?xml version="1.0"?>

<a>

<b><c/></b><d></b>

</a>

Correction: Mauvaise balise </b> </d>

• <?xml version="1.0"?>

<!DOCTYPE text [ <!ELEMENT text EMPTY> ]>

<text><bf>Titre</bf></text>

Correction: Bien formé mais non valide (le DTD interne impose que l élément text soit vide)

• <?xml version="1.0" ?>

<niveaux>

<truc>chose</truc>

<niveau index="1">

<truc> </truc>

</niveau>

<niveau index="2">

<truc attribut="chose"> </truc>

</niveau> </niveaux>

Correction: Bien Formé (truc peut etre utilisé à plusieurs endroits)

(7)

Ex3

Nous avons fait le choix de créer des balises supplémentaires telles que auteurs, sections, chapitres, paragraphes pour éviter de mélanger des ensembles distincts, comme le titre.

Cela présente l’avantage de créer des blocs homogènes (tels que les auteurs, les sections, les chapitres…).

<?xml version="1.0" encoding="iso-8859-1"?>

<livre>

<titre>Mon livre</titre>

<auteurs>

<auteur><nom>Brillant</nom><prenom>Alexandre</prenom></auteur>

<auteur><nom>Briand</nom><prenom>Aristide</prenom></auteur>

</auteurs>

<sections>

<section>

<titre>Section 1</titre>

<chapitres>

<chapitre>

<titre>Chapitre 1</titre>

<paragraphes>

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</paragraphes>

</chapitre>

<chapitre>

<titre>Chapitre 2</titre>

<paragraphes>

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</paragraphes>

</chapitre>

</chapitres>

</section>

<section>

<titre>Section 2</titre>

<chapitres>

<chapitre>

<titre>Chapitre 1</titre>

<paragraphes>

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</paragraphes>

</chapitre>

<chapitre>

<titre>Chapitre 2</titre>

<paragraphes>

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</paragraphes>

</chapitre>

</chapitres>

</section>

</sections>

</livre>

(8)

EX4

<?xml version="1.0" encoding="iso-8859-1"?>

<livre titre="Mon livre">

<auteurs>

<auteur nom="Brillant" prenom="Alexandre"/>

<auteur nom="Briand" prenom="Aristide"/>

</auteurs>

<sections>

<section titre="Section 1">

<chapitre titre="Chapitre 1">

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</chapitre>

<chapitre titre="Chapitre 2">

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</chapitre>

</section>

<section titre="Section 2">

<chapitre titre="Chapitre1">

<paragraphe>&lt;element id="10"&gt;&amp;gt;&lt;/element&gt;</paragraphe>

<paragraphe><![CDATA[<element id="10">&gt;</element>]]></paragraphe>

</chapitre>

<chapitre titre="Chapitre 2">

<paragraphe>Premier paragraphe</paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</chapitre>

</section>

</sections>

</livre>

(9)

Ex5

Il y a plusieurs combinaisons possibles en fonction de l’utilisation du préfixe ou de l’espace de noms par défaut.

<p1:livre titre="Mon livre" xmlns:p1="http://www.masociete.com"

xmlns:p2="http://www.monentreprise.com">

<p1:auteurs>

<p1:auteur nom="nom1" prenom="prenom1"/>

<p1:auteur nom="nom2" prenom="prenom2"/>

</p1:auteurs>

<p1:sections>

<p1:section titre="Section1">

<p1:chapitre titre="Chapitre1">

<p1:paragraphe>Premier paragraphe</p1:paragraphe>

<p1:paragraphe>Deuxième paragraphe</p1:paragraphe>

</p1:chapitre>

</p1:section>

<p2:section titre="Section2">

<p2:chapitre titre="Chapitre1">

<p2:paragraphe>Premier paragraphe</p2:paragraphe>

<p2:paragraphe>Deuxième paragraphe</p2:paragraphe>

</p2:chapitre>

<p2:chapitre titre="Chapitre2">

<p2:paragraphe>Premier paragraphe</p2:paragraphe>

<paragraphe>Deuxième paragraphe</paragraphe>

</p2:chapitre>

</p2:section>

</p1:sections>

</p1:livre>

(10)

EX : 6

- Si le document est complété par des cartes relatives à des personnes travaillant dans la même entreprise et sur le même site, l'élément adresse sera répliqué à l'identique pour chaque

personne.

- Chaque carte est complète et peut être traitée indépendamment des autres. L'affichage ou l'impression est facilité.

Nouvelle organisation : L'idée est de simplifier les éléments personne. L'avantage en matière de concision est évident : l'adresse ne sera pas répétée pour des personnes travaillant dans le même établissement (cette structure facilite la génération automatique du document à partir d'une base de données) en revanche la réalisation ou l'affichage d'une fiche complète nécessitera des traitements supplémentaires. Il sera nécessaire d'utiliser l'attribut site des éléments bureau pour retrouver les éléments de l'adresse qui devront être insérés.

<cartes>

<nom-comp>

<compagnie>INRIA</compagnie>

<adresse site="Rocquencourt">

<rue>Domaine de Voluceau</rue>

<nbr>BP 105</nbr>

<post-code>F-78153</post-code>

<ville>Le Chesnay Cedex</ville>

<pays>France</pays></adresse>

<adresse site="Sophia">

<rue>Route des Lucioles</rue>

<nbr></nbr>

<post-code>F-06560</post-code>

<ville>Sophia Antipolis</ville>

<pays>France</pays></adresse></nom-comp>

<personne>

<nom>Dupond</nom><prenom>Jean</prenom>

<bureau site="Sophia">

<bureau-nbr>2506</bureau-nbr>

<telephone>+33.4.9365.7777</telephone><fax>+33.4.9365.7788</fax>

</bureau>

</personne>

<personne>

<nom>Michard</nom><prenom>Alain</prenom>

<bureau site="Rocquencourt">

<bureau-nbr>3276</bureau-nbr>

<telephone>+33.1.3963.7777</telephone><fax>+33.1.3963.5114</fax>

</bureau>

</personne>

</cartes>

Cette dernière structuration fait apparaître les informations relatives aux individus comme des valeurs d'attributs. Toute exploitation du document demande une application particulière. Ce peut être l'effet recherché : les cartes de visites peuvent être des objets cachés utilisés pour renseigner une base de données, compléter un tableau.

<cartes>

<nom-comp compagnie="INRIA">

<site site-name="Rocquencourt">

<rue>Domaine de Voluceau</rue>

<nbr>BP 105</nbr>

<post-code>F-78153</post-code>

(11)

<ville>Le Chesnay Cedex</ville>

<pays>France</pays></site>

<site site-name="Sophia">

<rue>Route des Lucioles</rue>

<nbr></nbr>

<post-code>F-06560</post-code>

<ville>Sophia Antipolis</ville>

<pays>France</pays></site>

</nom-comp>

<personne name="Michard"

prenom="Alain"

site-name="Rocquencourt"

telephone="01.3963.7777"

bureau-nbr="2512" />

<personne name="Dupond"

prenom="Jean"

site-name="Sophia"

telephone="04.9365.7777"

bureau-nbr="2506" />

</cartes>

La règle est de n'utiliser des attributs que pour des paramètres de traitement utilisés par les application. Le contenu informatif doit figurer dans le contenu des éléments.

(12)

Références

Documents relatifs

Pour Henri Mintzberg (né en 1939), théoricien et auteur en management, la structure « est la somme totale des moyens employés pour diviser le travail entre tâches distinctes et

Montrer que l’existence de zones d’ombre dans la réception des ondes sismiques peut être mise en relation avec la présence du noyau terrestre

À l'issue de ce module, l'apprenti doit avoir acquis les concepts fondamentaux de la mécanique des fluides et une bonne connaissance de l'outil de calcul de CFD &#34;FLUENT&#34;..

Pour un Français ou pour un Allemand, une théorie physique est essentiellement un système logique ; des déductions parfaitement rigoureuses unissent les hypothèses sur lesquelles

M.Salem se demande si l’approche utilisée lui permet aussi de calculer le coût du capital pour un autre projet (B) qui a une vocation complètement indépendante de celle de

Ainsi, les champs des deux branches s’ajoutent et l’antenne rayonne une onde électromagnétique constituée de deux champs circulants à angle droit, chacun engendrant l’autre

In recent years, with implementation of national projects and the World Bank project, urban districts in Xining has been provided with wastewater collection pipe network, so that

A partir d'un arbre DOM donné, il est possible de générer d'autres documents dans le langage de balisage voulu, qui pourront à leur tour être manipulés par