Enes DAGDELEN # Partie 1: DTD et XML Schema **Question 1** ```dtd <!ELEMENT musées (musée*, objet-art*)> <!ELEMENT musée (nom,ville,visites)> <!ATTLIST musée idmusée #REQUIRED> <!ELEMENT visites (visiteur*)> <!ELEMENT objet-art (intitulé,auteur,description)> <!ATTLIST objet-art musée #REQUIRED type #REQUIRED> <!ELEMENT nom (#PCDATA)> <!ELEMENT visiteur (#PCDATA)> <!ATTLIST visiteur date #REQUIRED payé #REQUIRED <!ELEMENT intitulé (#PCDATA)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT description (#PCDATA)> ``` **Question 2** ```xml <xs:element name="musée" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="nom"/> <xs:element type="xs:string" name="ville"/> <xs:element name="visites"> <xs:complexType> <xs:sequence> <xs:element name="visiteur"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:date" name="date" use="required"/> <xs:attribute type="xs:float" name="payé" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="idmusée" use="required"/> </xs:complexType> </xs:element> ``` La clée de musée doit être placée dans la sequence de l'élément `musées`. # Partie 2: XPath **Question 1** ```xpath /musées/objet-art[intitulé="La Joconde"]/auteur/text() ``` **Question 2** ```xpath /musées/musée[count(visites/visiteur[@date="2019-12-03"]) > 1000]/nom/text() ``` **Question 3** ```xpath /musées/musée[ville="Nice"]/sum(visites/visiteur[@date="2019-12-04"]/@payé) ``` **Question 4** ```xpath /musées /objet-art[@musée=/musées/musée[nom="Louvre"]/@idmusée and @type="sculpture"] /intitulé/text() ``` # Partie 4: XQuery **Question 1** ```xquery for $v in /musées/objet-art[@type="peinture" and auteur="Léonard de Vinci"] let $c := /musées/musée[@idmusée = $v/@musée] return <peinture titre="{data($v/intitulé)}"> <musée>{data($c/nom)}</musée> <ville>{data($c/ville)}</ville> </visiteur> ``` **Question 2** ```xquery for $v in distinct-values(/musées/musée/visites/visiteur) return <visiteur nom="{data($v)}"> { for $e in /musées/musée[visites/visiteur = $v] let $count := count($e/visites) return <musée nb-visites="{data( count($e/visites) )}"> {data($e/nom)} </musée>} </visiteur> ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up