MASTER 2 IST 2007-08 XML et Java :: TD#1 Exercice 1 Ecrire un exemple de document XML bien-formé regroupant les informations d'un carnet d'adresses professionnelles. Ce carnet contient des informations sur des personnes et des entreprises. A propos d'une personne, vous devez stocker : le nom, le prénom, le sexe, les numéros de téléphone (professionnel, portable et personnel), l'adresse email, l'url de la page personnelle, l'adresse. En ce qui concerne les entreprises, vous devez stocker le nom de l'entreprise, l'adresse, les numéros de téléphone, le contact (une personne) dans cette entreprise, l'url de la page d'accueil du site de l'entreprise. Le document doit permettre de retrouver les salariés d'une entreprise même si celui-ci n'est pas un contact de cette dernière. Vérifiez que votre document est bien-formé à l'aide du 'XML wellformedness checker' disponible à l'url suivante : http://www.logontutor.com/xml_check.php. Affichez votre document sur un navigateur Internet (Internet explorer et/ou Mozilla). Exercice 2 Corriger les erreurs du document 1 de manière à le rendre bienformé. Transformer le document 1 en un document orienté donnée bienformé contenant des attributs à la place de éléments lorsque c'est possible. <?xml version="1.1"?> <records> <cd> <title>none too soon</title> <artist>allan Holdsworth</artist> <country>uk</country> <company>polidor</company> <year>1996</cd> </year> <cd> <title>all night wrong</title> <artist>allan Holdsworth</artist> <country>uk</country> <company>sony</company> <year>2002</year> </cd> </records> Document 1 : un document XML bien-formé Exercice 3
Corriger les erreurs du document 2 de manière à le rendre bienformé. Transformer le document 2 en un document sémantiquement équivalent bien-formé mais présentant des éléments à la place d'attributs lorsque c'est possible. <?xml:stylesheet type="text/xsl" href="stocks.xsl" version="1.0" encoding="utf 8"?> <portfolio xmlns="http//toto.org"> <stock symbol="sunw" name="sun Microsystems" price="17.1"/> <stock symbol="aol" name="america Online" price=51.05/> <stock symbol="ibm" name="international Business Machines" price="116.10"> <stock symbol="mot" name="motorola" price="15.20"/> </portfolio> Document 2 : un document XML bien-formé orienté donnée Exercice 4 Transformer le document 3 pour lui fournir une structure plus riche. Remarque : le (999) du numéro de téléphone correspond au code de la zone téléphonique (area code). <Telephone_Directory_Listing> <Name> John A. Doe </Name> <Address> 123 Main Street </Address> <City> Pleasantville </City> <State> MD </State> <Zip_Code> 12345 </Zip_Code> <Telephone> (999) 555 1234 </Telephone> </Telephone_Directory_Listing> Document 3 : Un document XML portant sur un enregistrement d'une fiche téléphone
Correction Exercice 1 <addr_book> <person pid="p01" work="b01" gender="m" age="21"> <first>gerard</first> <last>uffelman</last> <middle>alexander</middle> <phone type="work">518 276 6907</phone> <phone type="home">518 276 8964</phone> <email>uffelg@cs.rpi.edu</email> <email>uffelg@rpi.edu</email> <addr> <street>51 Central St.</street> <pobox>400</pobox> <city>mdi</city> <state>me</state> </addr> <url>http://www.cs.rpi.edu/~uffelg/</url> <person pid="p02" work="b01" gender="m"> <first>john</first> <last>punin</last> <middle>rigo</middle> <phone type="work">518 276 6907</phone> <email>puninj@rpi.edu</email> <addr> <street>22 Norte Ecuador</street> <pobox>5</pobox> <city>guiaquile</city> </addr> <url>http://www.cs.rpi.edu/~puinij/xmlj</url> <person pid="p03" work="b01" gender="f"> <first>chriss</first> <last>coonrad</last> <phone>518 276 8412</phone> <email>coonrad@cs.rpi.edu</email> <business bid="b01" contact_person="p03"> <bname>rpi Computer Science Dept.</bname> <phone type="fax">1 518 276 6110</phone> <phone type="work">518 276 6510</phone> <email>info@cs.rpi.edu</email>
<url>http://www.cs.rpi.edu</url> </business> </addr_book> Exercice 2 <?xml version="1.0" standalone="yes"?> <records> <cd title="none too soon" artist="allan Hodlsworth" country="uk" company ="Polidor" year="1996"/> <cd title="all night wrong" artist="allan Hodlsworth" country="uk" company="sony" year="2002"/> </records> Exercice 3 <?xml version="1.0" encoding="utf 8"?> <portfolio xmlns="http//toto.org"> <symbol>sunw</symbol> Sun Microsystems <price>17.1</price> <symbol>aol</symbol> America Online <price>51.05</price> <symbol>ibm</symbol> International Business Machines <price>116.10</price> /stock> <symbol>mot</symbol> MOTOROLA <price>15.20</price> </portfolio> Exercice 4 <Telephone_Directory_Listing> <Name> <FirstName>John</FirstName> <MiddleName>A</MiddleName> <LastName>Doe</LastName> </Name> <Address> <StreetNum>123</AddressNum> <StreetName>Main Street</StreetName> </Address> <City> Pleasantville </City> <State> MD </State> <Zip_Code> 12345 </Zip_Code>
<Telephone> <AreaCode>999</AreaCode> <PhoneNumber>555 1234</PhoneNumber> </Telephone> </Telephone_Directory_Listing>