• Aucun résultat trouvé

Examen XML

N/A
N/A
Protected

Academic year: 2022

Partager "Examen XML"

Copied!
3
0
0

Texte intégral

(1)

Nom : N

o

d’étudiant :

Examen XML

— Master d’Ingénierie Informatique — Décembre 2018, durée 2h.

Les documents sont interdits à l’exception d’une feuille de memento (4 pages A4). L’examen est composé de cinq exercices indépendants. Tous les appareils électroniques y compris les montres sont interdits.

Les réponses aux questions doivent directement être écrites dans les cadres du sujet. Tout ce qui est écrit en dehors des cadres n’est pas pris en compte pour l’évaluation.

◮Exercice 1On considère les deux DTD suivantes.

<!-- DTD 1 --> <!-- DTD 2 -->

<!ELEMENT root ((a,b*)|(b+,a))> <!ELEMENT root (a,b)+>

<!ELEMENT a (#PCDATA)> <!ELEMENT a (#PCDATA)>

<!ELEMENT b (#PCDATA)> <!ELEMENT b (#PCDATA)>

a) Donner un document qui soit valide pour la première DTD mais qui ne soit pas valide pour la seconde DTD.

b) Donner un document qui soit valide pour la seconde DTD mais qui ne soit pas valide pour la première DTD.

◮Exercice 2On considère des bibliographies semblables au document XML.

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

<!-- Time-stamp: "bibliography.xml 17 déc 2018 17:04:13" -->

<!DOCTYPE bibliography SYSTEM "bibliography.dtd" >

<bibliography>

<book key="Michard01" lang="fr">

<title>XML langage et applications</title>

<author>Alain Michard</author>

<year>2001</year>

<publisher>Eyrolles</publisher>

<isbn>2-212-09206-7</isbn>

<url>http://www.editions-eyrolles/livres/michard/</url>

</book>

...

</bibliography>

1

On ajoute des entrées comme ci-dessous pour marquer les traductions.

<book key="Michard01en" lang="en">

...

<traduction ref="Michard01"/>

</book>

a) Donner ce qu’il faut insérer (et où) dans un schéma XML des bibliographies pour as- surer que tous les élémentstraductionréférencent des livres présents dans le document.

b) Écrire une feuille de style XSLT qui remplace dans tout le document chaque élément de la forme<traduction ref="Michard01"/>par un élément<traduction ref="Michard01">XML langage et applications</traduction>où le titre de l’édition originale a été ajouté.

◮Exercice 3On considère des documents valides pour la DTD donnée ci-dessous. Écrire une feuille de style XLST qui prend un de ces documents et donne le document obtenu en supprimant les attributsxml:langredondants. Un tel attribut estredondant s’il a la même valeur que le même attribut de l’ancêtre le plus proche ayant cet attribut. La feuille de style devra être écrite en supposant que les élémentstpeuvent être remplacés par des éléments de nom différent et ayant d’autres attribut.

<!-- DTD -->

<!ELEMENT t (#PCDATA | t)*>

<!ATTLIST t xml:lang CDATA #IMPLIED>

2

(2)

◮Exercice 4On consdère le document source (sur deux colonnes)

<?xml version="1.0" encoding="utf-8"?> <indi id="I7" f="I3" m="I5" c="I14">

<geneal> <name>Arnaud Turing</name>

<indi id="I1" c="I3 I4"> </indi>

<name>Jérôme Turing</name> <indi id="I8" c="I14">

</indi> <name>Laurence Church</name>

<indi id="I2" c="I3 I4"> </indi>

<name>Estelle Knuth</name> <indi id="I9" f="I3" m="I5">

</indi> <name>Manuel Turing</name>

<indi id="I3" f="I1" m="I2" c="I7 I9"> </indi>

<name>Frederic Turing</name> <indi id="I10">

</indi> <name>Nicole von Neumann</name>

<indi id="I5" c="I7 I9"> </indi>

<name>Caroline Rabin</name> <indi id="I11" f="I6">

</indi> <name>Dylan Büchi</name>

<indi id="I4" f="I1" m="I2" c="I11 I17"> </indi>

<name>Julie Turing</name> <indi id="I17" f="I6">

</indi> <name>Sylvain Büchi</name>

<indi id="I6" c="I11 I17"> </indi>

<name>Nicolas Büchi</name> <indi id="I14" f="i7" m="I8">

</indi> <name>Françoise Turing</name>

</indi>

</geneal>

et la feuille de style XSLT suivante

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

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:param name="idparam"/>

<xsl:output method="xml" encoding="utf-8" indent="yes"/>

<xsl:key name="indis" match="indi" use="@id"/>

<xsl:variable name="root" select="/"/>

<xsl:template match="/">

<body>

<h1>Exercice 4</h1>

<ul><xsl:apply-templates select="key(’indis’, $idparam)"/></ul>

</body>

</xsl:template>

<xsl:template match="indi">

<li>

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

<xsl:text> [</xsl:text><xsl:value-of select="@id"/><xsl:text>]</xsl:text>

<xsl:if test="@c">

<ul>

<xsl:for-each select="tokenize(@c, ’\s+’)">

<xsl:apply-templates select="key(’indis’,.,$root)"/>

</xsl:for-each>

</ul>

</xsl:if>

</li>

</xsl:template>

</xsl:stylesheet>

a) Donner le résultat de la commandesaxon geneal.xml geneal.xsl idparam=I1.

3 4

(3)

◮Exercice 5On considère le schema XML suivant

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

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

<xsd:complexType name="I" abstract="true">

<xsd:simpleContent>

<xsd:extension base="xsd:integer">

<xsd:attribute name="sign">

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="+"/>

<xsd:enumeration value="-"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:extension>

</xsd:simpleContent>

</xsd:complexType>

<xsd:complexType name="P">

<xsd:simpleContent>

<xsd:restriction base="I">

<xsd:simpleType>

<xsd:restriction base="xsd:nonNegativeInteger"/>

</xsd:simpleType>

<xsd:attribute name="sign" use="prohibited"/>

</xsd:restriction>

</xsd:simpleContent>

</xsd:complexType>

<xsd:element name="root">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="i" type="I" minOccurs="2" maxOccurs="3"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:schema>

5

a) Donner un document valide pour ce schéma

b) Donner une DTD équivalente qui valide les mêmes documents que ce schéma.

6

Références

Documents relatifs

Comme cette autonomie les amène à être seuls, sans aide humaine, ils doivent être « intelligents» pour fonctionner.. Ainsi, une voiture sans conducteur peut circuler seule, et un

Correction exercice 3 : Les deux premières questions ont été vues

Cliquez ici pour telecharger le

Par exemple, pour que le rôle de l’ensei- gnant soit plus efficace, il est primordial, à notre sens, que les séan- ces de production écrite comportent des situations

Chaque document possède d’un titre complexe qui se compose d’un numéro, d’une date, d’un nom, parfois d’un sigle et est relatif à un ou plusieurs domaines spécifiques. La

Chaque document possède d’un titre complexe qui se compose d’un numéro, d’une date, d’un nom, parfois d’un sigle et est relatif à un ou plusieurs domaines spécifiques. La

Pour tous les flacons en votre possession et figurant dans la liste jointe (annexe 1), compléter pour chaque lot concerné le formulaire « rapport d’inspection visuelle des

On modifie cet ensemble de jetons d’étape en étape de la manière suivante : À chaque étape on peut échanger deux jetons de couleurs distinctes contre un jeton de la