< XML - Managing Data Exchange < The one-to-many relationship

Chapter

To return to the chapter, follow this link: One-to-many relationship

Exercises

To view the exercises, follow this link: exercises

Answer - Exercise 1

XML schema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="museum_info">
   <xsd:complexType>
      <xsd:sequence>
         <xsd:element name="museum" type="museum_details" minOccurs="1" 
         maxOccurs="unbounded" />
      </xsd:sequence>
   </xsd:complexType>
</xsd:element>
<xsd:complexType name="museum_details">
   <xsd:sequence>
      <xsd:element name="museumName" type="xsd:string"/>
      <xsd:element name="dateEstablished" type="xsd:int"/>
      <xsd:element name="address" type="xsd:string"/>
      <xsd:element name="link" type="xsd:string"/>
      <xsd:element name="mPicture"/>
      <xsd:element name="country">
      <xsd:simpleType>
         <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Germany"/>
            <xsd:enumeration value="Turkey"/>
            <xsd:enumeration value="USA"/>
            <xsd:enumeration value="Canada"/>
            <xsd:enumeration value="Mexico"/>
            <xsd:enumeration value="France"/>
            <xsd:enumeration value="Holland"/>
            <xsd:enumeration value="Spain"/>
            <xsd:enumeration value="China"/>
            <xsd:enumeration value="Japan"/>
            <xsd:enumeration value="India"/>
         </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
      <xsd:element name="museumHours" type="hours" minOccurs="1"
         maxOccurs="unbounded" />
   </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="hours">
   <xsd:sequence>
      <xsd:element name="date" type="xsd:string"/>
      <xsd:element name="openingTime" type="xsd:string"/>
      <xsd:element name="location" type="xsd:string"/>
      <xsd:element name="eventType" type="xsd:string"/>
      <xsd:element name="eventDescription" type="xsd:string"/>
   </xsd:sequence> 
</xsd:complexType>
</xsd:schema>


XML document:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<museum_info xsi:noNamespaceSchemaLocation="museum.xsd">
   <museum>
      <museumName>Metropolitan Museum of Art</museumName>
      <dateEstablished>1870</dateEstablished>
      <address>1000 Fifth Avenue, New York, NY 10028</address>
      <link>http://metmuseum.org</link>
      <mPicture filename="themet.jpg"/>
      <country>USA</country>
      <museumHours>
         <date>02-17-2004</date>
         <openingTime>11:00 a.m.</openingTime>
         <location>Great Hall</location>
         <eventType>Gallery Talk</eventType>
         <eventDescription>
            Poets, Lovers, and Heroes in Italian Mythological Prints
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-17-2004</date>
         <openingTime>11:00 a.m.</openingTime>
         <location>Uris Center for Education</location>
         <eventType>Family Program</eventType>
         <eventDescription>
            A gallery program for visitors ages five through twelve and
            accompanying adults to welcome them to the Museum's collection
            through discussions and sketching
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-18-2004</date>
         <openingTime>6:00 p.m.</openingTime>
         <location>Grace Rainey Rogers Auditorium</location>
         <eventType>Lecture</eventType>
         <eventDescription>
            Curious Combinations in Siracusa and Palermo; a Baroque Stucco
            Oratory; and Churches in Modica and Ragusa Ibla
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-19-2004</date>
         <openingTime>11:00 a.m.</openingTime>
         <location>Great Hall</location>
         <eventType>Gallery Talk</eventType>
         <eventDescription>
            Images of George Washington
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-20-2004</date>
         <openingTime>2:00 p.m.</openingTime>
         <location>Vanderlyn's Panorama</location>
         <eventType>Lecture</eventType>
         <eventDescription>
            A Lacquer Penbox by Manohar: An Example of Late Safavid Style
            Painting in India
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-20-2004</date>
         <openingTime>3:00 p.m.</openingTime>
         <location>Great Hall</location>
         <eventType>Gallery Talk</eventType>
         <eventDescription>
            Trade and Exchange in the Ancient Near East
         </eventDescription>
      </museumHours>
      <museumHours>
         <date>02-21-2004</date>
         <openingTime>11:00 a.m.</openingTime>
         <location> Grace Rainey Rogers Auditorium</location>
         <eventType>Film</eventType>
         <eventDescription>
            Like Water for Chocolate - this feature film weaves a romantic
            fable in which chocolate plays a pivotal role in the cuisine of a
            passionate young cook.
         </eventDescription>
      </museumHours>
   </museum>
</museum_info>



Answer - Exercise 2


XML schema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
<!-- currencies -->
<xsd:element name="currencies">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="currency" type="currencyDetails" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>   
<!-- countries with currencies-->
<xsd:simpleType name="currencyCodeType">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="\w{3}"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="currencyDetails">
    <xsd:sequence>
        <xsd:element name="countryName" type="xsd:string"/>
        <xsd:element name="currencyCode" type="currencyCodeType"/>
        <xsd:element name="currencyName" type="xsd:string"/>
        <!-- the next line is not necessary for answering question 1 of the exercise--> 
        <xsd:element name="flagImage"/>
    </xsd:sequence>      
</xsd:complexType>
</xsd:schema>


XML document:

1
2
3
4
5
6
7
8
9
10
11
12
13

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="currency.xsl" type="text/xsl"?>
<!-- Well, didn't quite took the correct image paths, because there is no internet connection available right now.
I'm sure you can figure it out yourself! -->

<currencies xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:noNamespaceSchemaLocation='currency.xsd'>
    <currency>
        <countryName>Germany</countryName>
        <currencyCode>EUR</currencyCode>
        <currencyName>Euros</currencyName>
         <!-- the next line is not necessary for answering question 1 of the exercise--> 
       <flagImage filename="deutscheflagge.gif" value="German Flag" imageURL="http://www.deutschland.de"/>        
     </currency>
    <currency>
        <countryName>United Kingdom</countryName>
        <currencyCode>GBP</currencyCode>
        <currencyName>Pounds</currencyName>
         <!-- the next line is not necessary for answering question 1 of the exercise--> 
       <flagImage filename="flag.gif" value="Flag" imageURL="http://www.uk.co.uk"/>        
        </currency>
    <currency>
        <countryName>Australia</countryName>
        <currencyCode>AUD</currencyCode>
        <currencyName>Dollars</currencyName>
         <!-- the next line is not necessary for answering question 1 of the exercise--> 
       <flagImage filename="flag.gif" value="Flag" imageURL="http://www.australia.au"/>         
    </currency>
    <currency>
        <countryName>Tuvalu</countryName>
        <currencyCode>TVD</currencyCode>
        <currencyName>Tuvalu Dollars</currencyName>
         <!-- the next line is not necessary for answering question 1 of the exercise--> 
       <flagImage filename="flag.gif" value="Flag" imageURL="http://www.tavalu.tuv"/>         
    </currency>
    <currency>
        <countryName>United States of America</countryName>
        <currencyCode>USD</currencyCode>
        <currencyName>Dollars</currencyName>
         <!-- the next line is not necessary for answering question 1 of the exercise--> 
        <flagImage filename="flag.gif" value="Flag" imageURL="http://www.whitehouse.gov/"/>
        </currency>
</currencies>

Answer - Exercise 3

XML schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="unqualified">
<!-- Spa Finder -->
 <xsd:element name="spaFinder">
  <xsd:complexType>
        <xsd:sequence>
         <xsd:element name="spa" type="spaDetails" minOccurs="1" 
              maxOccurs="unbounded"/> 
        </xsd:sequence>
  </xsd:complexType>
 </xsd:element>
<!-- Spa -->
 <xsd:complexType name="spaDetails">
  <xsd:sequence>
   <xsd:element name="spaName" type="xsd:string"/>
   <xsd:element name="spaOwner" type="xsd:string"/>
   <xsd:element name="spaPhone" type="xsd:string"/>
   <xsd:element name="spaCity" type="xsd:string"/>
   <xsd:element name="spaState" type="xsd:string"/>
   <xsd:element name="spaAddress" type="xsd:string"/>
   <xsd:element name="startedIn" type="xsd:date"/>
   <xsd:element name="spaType" type="xsd:string"/>
   <!--Activity is a complexType defined in the Spa to 
   indicate the one-to-many relationship between spa and activities.--> 
   <xsd:element name="activity" type="activityDetails" minOccurs="1" 
        maxOccurs="unbounded"/>
  </xsd:sequence> 
 </xsd:complexType>
<!-- Activity -->
 <xsd:complexType name="activityDetails">
  <xsd:sequence>
   <xsd:element name="activityName" type="xsd:string"/>
   <xsd:element name="description" type="xsd:string"/>
   <xsd:element name="price" type="xsd:decimal" />
 <!--Offering is a complexType defined in the Activities to 
   indicate the one-to-many relationship between activities and offerings.--> 
   <xsd:element name="offering" type="offeringDetails" minOccurs="1" 
        maxOccurs="unbounded"/>
  </xsd:sequence> 
 </xsd:complexType>
<!-- Offering -->
 <xsd:complexType name="offeringDetails">
  <xsd:sequence>
   <xsd:element name="days" type="xsd:string"/>
   <xsd:element name="time" type="xsd:string"/>
   <xsd:element name="practitioner" type="xsd:string" />
   <xsd:element name="floor" type="xsd:integer"/>
   <xsd:element name="room" type="xsd:string" />   
  </xsd:sequence>
 </xsd:complexType></xsd:schema>

Exercises

To view the exercises, follow this link: exercises

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.