1
The many
-
to
-
many relationship (XML)
(Answers)
CMPCD 3044 Fundamentals of XML
Technologies
WORKSHOP 3
The many
-
to
-
many relationship
Answers
Exercises 1
-
3
1.
Create an XML schema to describe franchise
-
type restaurants and the cities in
which they are located. I
nclude a price range for each restaurant. When
describing the city, include a country element. Using the country list at
http://www.opentourism.org/xm
l/country.xsd
, create a separate schema and
include it in your main schema using the <include> tag. Make sure both
schemas are well formed and valid.
2.
Using the schema, create an XML document that describes at least three
restaurants that are located in at
least two of the same cities. Make sure it is
well formed and valid.
3.
Create an XML style sheet that lists each restaurant by city. Be sure to include
the restaurant information, with the price range correctly formatted, and neatly
laid out using tables.
t
he Schema
1.
FranchiseRestaurant.xsd
<?xml version="1.0" encoding="UTF
-
8"?>
<!
--
Document : FranchiseRestaurant.xsd
Created on : November, 1, 2005
-
10
-
18
Author : Hulya Francis
Description: XML Schema document describing franchise res
taurants
and the cities they're located.
--
>
<?xml version="1.0" encoding="UTF
-
8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.netbeans.org/examples/targetNS"
xmlns="http://xml.ne
tbeans.org/examples/targetNS"
2
elementFormDefault="unqualified">
<xsd:include
schemaLocation="http://www.opentourism.org/xmltext/country.xsd" />
<xsd:include schemaLocation="fr
anchiserestaurantlist.xsd" />
<!
--
Tour Guide
--
>
<xsd:element name="tourGuide">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="city" type="cityDetails" minOccurs="1"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xs
d:element>
<!
--
City
--
>
<xsd:complexType name="cityDetails">
<xsd:sequence>
<xsd:element name="cityName" type="xsd:string" />
<xsd:element name="adminUnit" type="xsd:string" />
<xsd:element name="country" type="countryNameType" />
<xsd:element name="population" type="xsd:integer" />
<xsd:element name="area" type="xsd:integer" />
<xsd:element name="elevation" type="xsd:integer" />
<xsd:element name="longitude" type="xsd:decimal" />
<xsd:element name="latitude"
type="xsd:decimal" />
<xsd:element name="cityDescription" type="xsd:string" />
<xsd:element name="history" type="xsd:string" />
<xsd:element name="FranchiseRestaurants"
type="FranchiseRestaurantDetails"
minOccurs="0" maxOccurs="unbounde
d"/>
</xsd:sequence>
</xsd:complexType>
<!
--
FranchiseRestaurant
--
>
<xsd:complexType name="FranchiseRestaurantDetails">
<xsd:all>
<xsd:element name="restaurantName" type="restaurantNameType"/>
<xsd:element name="descript
ion" type="xsd:string"
minOccurs="0"/>
<xsd:element name="restaurantAddress" type="xsd:string"
minOccurs="0"/>
<xsd:element name="region" type="xsd:string"/>
<xsd:element name="postalCode" type="xsd:string" minOccurs="0"
/>
<xsd:element
name="telephoneNumber" type="xsd:string"
minOccurs="0"/>
<xsd:element name="websiteURL" type="xsd:anyURI" minOccurs="0"
/>
<xsd:element name="restaurantType" type="xsd:string"
minOccurs="0"/>
<xsd:element name="lowerPrice" type="xsd:positi
veInteger"/>
<xsd:element name="upperPrice" type="xsd:positiveInteger"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="version" type="xsd:string"/>
</xsd:schema>
3
The schema included in the major schema: franchiserestaurantlist.xsd
<?xml ver
sion="1.0" encoding="UTF
-
8"?>
<?xml version="1.0" encoding="UTF
-
8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<annotation>
<documentation>A list of all franchise restaurants</documentation>
</annotation>
<simpleType name="restaurantNameType">
<restriction base="string">
<enumeration value="TGIF" />
<enumeration value="Burger King" />
<enumeration value="McDonalds" />
<enumeration value="CheeseCake Factory" />
<enumeration value="Schlotzky'
s" />
</restriction>
</simpleType>
</schema>
the Document
2.
<!
--
>
Document : FranchiseRestaurant.xml
Created on :
Author : Hulya Francis
Description: XML document describing the franchising restaurants
and the
cities they're located.
--
>
<?xml version="1.0" encoding="UTF
-
8"?>
<tourGuide xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"
xmlns="http://xml.netbeans.org/examples/targetNS"
xsi:schemaLocation="http://xml.netbeans.org/example
s/targetNS
FranchiseRestaurant.xsd" >
<city>
<cityName>Atlanta</cityName>
<adminUnit>Georgia</adminUnit>
<country>United States</country>
<population>394017</population>
<area>131780</area>
<elevation>1050</elevation>
<longitude>33.46</longitude>
<latitude>84.25</latitude>
<cityDescription>Atlanta determination rebuilt the city
following
its destruction by fire at the end of the Civil War. Today the
spraw
ling city
is filled with sky
-
scrapers, interstate highways, trees, diverse
neighborhoods
all proudly linking the present to the city's rich heritage.
</cityDescription>
<history>Though steeped in history, Atlanta nevertheless
remai
ns a
4
comparatively new city by East Coast standards, having been founded
only in
1837 as the end of the Western and Atlantic railroad line (it was
first named
Marthasville in honor of the then
-
governor's daughter, nicknamed
Terminus for
its rail location
, and then changed soon after to Atlanta,the
feminine of
Atlantic
--
as in the railroad). </history>
<FranchiseRestaurants>
<restaurantName>CheeseCake Factory</restaurantName>
<description>The Cheesecake Factory serve
s much more
than just
cheesecake! </description>
<restaurantAddress>3024 Peachtree Road,
NW</restaurantAddress>
<region>Buckhead</region>
<postalCode>30305</postalCode>
<te
lephoneNumber>(404) 816
-
2555</telephoneNumber>
<websiteURL>http://www.thecheesecakefactory.com/locations.htm
</websiteURL>
<restaurantType>World</restaurantType>
<lowerPrice>9</lowerPrice>
<upperPrice>30</upperPrice>
</FranchiseRestaurants>
<FranchiseRestaurants>
<restaurantName>CheeseCake Factory</restaurantName>
<description>The Cheesecake Factory serves much mo
re
than just
cheesecake!</description>
<restaurantAddress>4400 Ashford
-
Dunwoody Road Suite,
30005</restaurantAddress>
<region>Perimeter Mall</region>
<postalCode>30346
-
1513</postalCod
e>
<telephoneNumber>(678) 320
-
0201</telephoneNumber>
<WebsiteURL>http://www.thecheesecakefactory.com/locations.htm
</websiteURL>
<restaurantType>World</restaurantType>
<lowerPrice>9</lo
werPrice>
<upperPrice>28</upperPrice>
</FranchiseRestaurants>
<FranchiseRestaurants>
<restaurantName>TGIF</restaurantName>
<description>You're getting hungry... very
hung
ry...</description>
<restaurantAddress>2061 Peachtree Rd,
NE</restaurantAddress>
<region>Midtown</region>
<postalCode>30309</postalCode>
<telephoneNumber>(404) 350
-
0199</telephoneNumber>
<web
siteURL>http://tgifridays.com</websiteURL>
<restaurantType>Tex
-
Mex</restaurantType>
<lowerPrice>12</lowerPrice>
<upperPrice>34</upperPrice>
</FranchiseRestaurants>
</city>
5
<city>
<cityName>Istanbul</cityName>
<adminUnit>Marmara</adminUnit>
<country>Turkey</country>
<population>9631700</population>
<area>4600</area>
<elevation>30</elevation>
<longitude>28.96</longitude>
<latitude>41.01</latitude>
<cityDescription>Straddling the Bosphorus, its skyline
studded with
domes and minarets, Istanbul is one of the truly great romantic
cities. It has
natural beauty, as well as h
istorical richness. </cityDescription>
<history>Prompted by the oracle at Delphi, a man named
Byzas
established a town on the site of present
-
day Istanbul around 657 BC.
Although
conquered by Alexander the Great and eventually subsumed by the R
oman
Empire,
Byzantium fared pretty well until it annoyed a Roman emperor by
backing his
rival in a civil war, and it was subsequently destroyed.</history>
<FranchiseRestaurants>
<restaurantName>TGIF</restaurantName>
<description>A good place too eat, usually too
crowded
though.</description>
<restaurantAddress>223 Nispetiye St.
</restaurantAddress>
<region>Etiler</region>
<postalCode>30000</postalCode>
<telephoneNumber>(212) 345
-
2121</telephoneNumber>
<websiteURL>http://tgifridays.com</websiteURL>
<restaurantType>Tex
-
Mex</restaurantType>
<lowerPrice>11</lowerPrice>
<upperPr
ice>55</upperPrice>
</FranchiseRestaurants>
<FranchiseRestaurants>
<restaurantName>Burger King</restaurantName>
<description>For he people who are in
hurry...</descripti
on>
<restaurantAddress>83 Yildizposta St.
</restaurantAddress>
<region>Besiktas</region>
<postalCode>43005</postalCode>
<telephoneNumber>(212) 314
-
5509</telephoneNumber>
<
websiteURL>http://burgerking.com/</websiteURL>
<restaurantType>Fast
-
food</restaurantType>
<lowerPrice>2</lowerPrice>
<upperPrice>7</upperPrice>
</FranchiseRestaurants>
<FranchiseRestaurants>
<restaurantName>Schlotzky's</restaurantName>
<description>Hmmm...Delicious original
sandwiches.</description>
<restaurantAddress>Akmerkez,
6
Floor:2</
restaurantAddress>
<region>Levent</region>
<postalCode>35600</postalCode>
<restaurantType>Quick and dirty</restaurantType>
<lowerPrice>3</lowerPrice>
<upperPrice>10</upper
Price>
</FranchiseRestaurants>
</city>
</tourGuide>
the Stylesheet
3.
<!
--
Document : FranchiseRestaurant.xsl
Created on :
Author :
--
>
<?xml version="1.0" encoding="UTF
-
8" ?>
<xsl:st
ylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Franchise Restaurants</TITLE>
<STYLE TYPE="text/c
ss">
H2 {TEXT
-
ALIGN:CENTER;}
.blueBackground {BACKGROUND
-
COLOR:LIGHTBLUE; TEXT
-
ALIGN:LEFT;
BORDER
-
WIDTH:0px; WIDTH:90%;}
.pinkBackground {BACKGROUND
-
CO
LOR:PINK; TEXT
-
ALIGN:LEFT;
COLOR:BLUE; FONT
-
SIZE:12pt;
BORDER
-
WIDTH:2px;}
</STYLE>
</HEAD>
<BODY>
<H2>* * * Franchise Resta
urant Listings by City * *
*</H2>
<xsl:apply
-
templates select="tourGuide"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="tourGuide">
<xsl:for
-
each select="city">
<TABLE CLASS="pinkBackground">
<TR><TD>
<BR/>
<TABLE style="width:100%; color:black;"
align="center"><TR><TD>
<BR/><b><xsl:text>City: </xsl:text></b>
</TD><TD>
<xsl:value
-
of select="cityName"/>
7
</TD></TR>
<TR><TD><b><xsl:text>Description:
</xsl:text></b>
</TD><TD>
<xsl:value
-
of select="cityDescription"/>
</TD></TR>
</TABLE></TD></TR>
<TR><TD colspan="2"><center>
<font style="font
-
size:medium">Franchise
Restaurants:
</font><br/>
<xsl:for
-
each select="FranchiseRestaurants">
<TABLE CLASS="blueBackground">
<TR>
<TD align="left" style="FONT
-
SIZE:10pt;">
<HR width="90%"/>
<b>
<xsl:text>Restaurant Name:
</xsl:text>
</b>
<xsl:value
-
of select="restaurantName"/>
<BR/>
<b>
<xsl:text>Region: </xsl:text>
</b>
<xsl:valu
e
-
of select="region"/>
<BR/>
<b>
<xsl:text>Description: </xsl:text>
</b>
<xsl:value
-
of select="description"/>
<BR/>
<b>
<xsl:text>Type: </xsl:text>
</b>
<xsl:value
-
of select="restaurantType"/>
<BR
/>
<b>
<xsl:text>Price Range: $</xsl:text>
</b>
<xsl:value
-
of select="lowerPrice"/>
-
<xsl:value
-
of
select="up
perPrice"/>
<BR/>
<HR width="90%"/>
</TD>
</TR>
</TABLE>
<BR/>
</x
sl:for
-
each>
</center>
</TD></TR>
</TABLE>
</xsl:for
-
each>
</xsl:template>
</xsl:stylesheet>
8
alternate Stylesheet
<?xml version="1.0" encoding="UTF
-
8"?>
<!
--
Document :
restaurant.xsl
Author :
Description: XML Schema document describing franchise restaurants
and the cities they're located.
--
>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>World Reknowned Restaurants</TITLE>
<STYLE TYPE="text/css">
H2 {TEXT
-
ALIGN:CENTER;}
.greenBack
ground {BACKGROUND
-
COLOR:LIGHTGREEN;
TEXT
-
ALIGN:LEFT;}
.yellowBackground {BACKGROUND
-
COLOR:YELLOW;
TEXT
-
ALIGN:CENTER;
FONT
-
WEIGHT:BOLD;
FONT
-
SIZE:14pt;}
.salmonBackground {BACKGROUND
-
COLOR:LIGHTSALMON;
TEXT
-
ALIGN:CENTER;
FONT
-
SIZE:12pt;}
</STYLE>
</HEAD>
<BODY>
<H2>Restaurant Listings by City</H2>
<xsl:apply
-
templates select="tourGuide"/>
</BODY>
</HTML>
</xsl:
template>
<xsl:template match="tourGuide">
<TABLE BORDER="1" style="padding: 10px; width:100%">
<xsl:for
-
each select="city">
<TR><TD COLSPAN="2" CLASS="greenBackground"><BR/>
<h3><
xsl:text>City: </xsl:text>
<xsl:value
-
of select="cityName"/></h3>
</TD></TR><BR/><BR/>
<xsl:for
-
each select="restaurant">
<TR><TD>
<b><xsl:text>Restaura
nt: </xsl:text></b>
<xsl:value
-
of select="restaurantName"/>
</TD><TD><BR/><b><xsl:text>Price Range:
$</xsl:text></b>
<xsl:value
-
of select="format
-
number
(lowerPrice, '#0.00')"/>
<xsl:text>
-
$</xsl:text>
<xsl:value
-
of select="format
-
number
(upperPrice, '#0.00')"/>
</TD></TR>
</xsl:for
-
each><BR/><BR/>
</xsl:f
or
-
each>
</TABLE>
</xsl:template>
9
</xsl:stylesheet>
Training Schedule
-
Exercise 4
4
)
Use the following m:m relationship:
A training schedule may contain many workshops. A workshop can be taught by
many instructors. An instructor may teach mo
re than one workshop.
Workshop Data Model for a M:M Relationship
the Schema
4
.a. Create an XML schema to describe the illustrated data model. Include at least
all of the attributes listed in the data model.
Two Schemas:
workshop.xsd
-
main schema
<xml version="1.0" encoding="UTF
-
8"?>
<!
--
Document : wo
rkshop.xsd
Created on :
Author :
Description: XML Schema document describing workshops
--
>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<!
--
comment: links to instructor.xsd, another schema fi
le
--
>
10
<xsd:include schemaLocation="instructor.xsd"/>
<xsd:element name="trainingSchedule">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="workshop" type="workshopDetails"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:seque
nce>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="workshopDetails">
<xsd:sequence>
<xsd:element name="workshopName" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xs
d:element name="date" type="xsd:date"/>
<xsd:element name="startTime" type="xsd:time"/>
<xsd:element name="endTime" type="xsd:time"/>
<xsd:element name="cost" type="xsd:decimal"/>
<xsd:element name="instructo
rs" type="instructorDetails"
minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="instructorDetails">
<xsd:sequence>
<xsd:element name="instructor" type="instr
uctorInfo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
instructor.xsd
-
second schema
<?xml version="1.0" encoding="UTF
-
8"?>
<!
--
Document : instructor.xsd
Created on : April 24, 2005
Author : Christina Serran
o
Description: XML Schema document describing instructors
--
>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<!
--
Instructor
--
>
<xsd:simpleType name="emailAddressType">
<xsd:restriction base
="xsd:string">
<xsd:pattern value="
\
w+
\
W*
\
w*@{1}
\
w+
\
W*
\
w+.
\
w+.*
\
w*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="instructorInfo">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string
"
minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string"
minOccurs="0"/>
<xsd:element name="emailAddress" type="emailAddressType"
minOccurs="0"/>
<xsd:element name="instructorPic" minOccurs="0"/>
</xsd:
sequence>
</xsd:complexType>
</xsd:schema>
11
the Document
4
.b. Create an XML document for a few workshops and instructors. Make sure your
document is well formed and valid.
XML Document
workshop.xml
<?xml version="1.0" encoding="UTF
-
8"?>
<!
--
comment:
links to workshop.xsl, the stylesheet
--
>
<?xml
-
stylesheet href="workshop.xsl" type="text/xsl" media="screen"?>
<!
--
Document : workshop.xml
Created on :
Author :
Description:
--
>
<trainingSchedule xmlns:xsi="http://www.w3.org/2001/
XMLSchema
-
instance"
xsi:noNamespaceSchemaLocation="workshop.xsd">
<workshop>
<workshopName>Intro to Microsoft Word</workshopName>
<description>Learn the basics of how to create, edit, and
format a professional
looking document. Topics include setting
margins; cutting, copying,
and pasting; using the spell
-
check, thesaurus,
and word count;
inserting headers and footers; inserting page
numbers, date and time,
and footnotes; formatting text and paragraphs;
and adding bulleted or
numbered lists.
</description>
<date>2005
-
01
-
14</date>
<startTime>09:00:00</startTime>
<endTime>11:00:00</endTime
>
<cost>25.00</cost>
<instructors>
<instructor>
<firstName>Stewie</firstName>
<lastName>Kidd</lastName>
<emailAddress>stewie@techworld.com</emailAddress>
<instructorPic file
name="stewie.jpg" size="150"
value="Picture of Stewie"/>
</instructor>
</instructors>
</workshop>
<workshop>
<workshopName>Graphics Editing Using Adobe
Photoshop</workshopName>
<description>Learn how to create im
ages and modify photos.
Topics include learning
about graphics file formats, using drawing
tools, resizing and cropping
images, creating transparent backgrounds, adding
text to pictures,
app
lying effects and styles, touching up
12
pictures, working with layers,
and optimizing images.
</description>
<date>2005
-
02
-
05</date>
<startTime>08:30:00</startTime>
<endTime>11:30:00</endTime>
<co
st>40.00</cost>
<instructors>
<instructor>
<firstName>Marge</firstName>
<lastName>Simpson</lastName>
<emailAddress>marge@techworld.com</emailAddress>
<instructorPic filename="marge.jpg"
size="150"
value="Picture of Marge Simspon"/>
</instructor>
</instructors>
</workshop>
<workshop>
<workshopName>Intro to Macromedia Flash</workshopName>
<description>Learn how to create vector
-
based graphics and
animation for the web.
Topics include using the drawing tools, working
with layers,
working with the timeline, and creating basic
animations. Explore
options for publishing Flash movie files
on the
web.
</description>
<date>2005
-
03
-
17</date>
<startTime>09:30:00</startTime>
<endTime>12:30:00</endTime>
<cost>50.00</cost>
<instructors>
<instructor>
<firstName>Calvin</firstName>
<lastName>Misfit</lastName>
<emailAddress>calvin@techworld.com</emailAddress>
<instructorPic filename="calvin.jpg" size="150"
value="Picture of Calvin"/>
</instructor>
<
/instructors>
</workshop>
</trainingSchedule>
the Stylesheet
4
.c. Create an XML stylesheet to present the information in HTML format.
XML Stylesheet
workshop.xsl
<?xml version="1.0" encoding="UTF
-
8"?>
<!
--
Document : workshop.xsl
Create
d on : April 24, 2005
13
Author :
Description: XML Stylesheet for m:m workshop data model
--
>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<H
TML>
<HEAD>
<TITLE>Tech World Workshop Schedule</TITLE>
<STYLE TYPE="text/css">
BODY {FONT
-
FAMILY: ARIAL, SANS
-
SERIF; COLOR: BLACK;
BACKGROUND: WHITE;}
H1 {TEXT
-
ALIGN: CENTER;}
H2 {FONT
-
WEIGHT: BOLD; FONT
-
SIZE: 12PT; }
.largehd {FONT
-
WEIGHT: BOLD; FONT
-
SIZE: 14PT; }
.smallhd {FONT
-
WEIGHT: BOLD; FONT
-
SIZE: 12PT; }
.lightBackground {BACKGROUND
-
COLOR: BURLYWOOD; TE
XT
-
ALIGN: LEFT;}
</STYLE>
</HEAD>
<BODY>
<H1>Spring Workshop Schedule</H1>
<P ALIGN="CENTER">To register online, go to: www.techworld.com.</P>
<xsl:apply
-
templates select="trainingSchedule"/>
</BODY>
</HTML>
</xsl:templ
ate>
<xsl:template match="trainingSchedule">
<TABLE WIDTH="750" BORDER="0" ALIGN="CENTER">
<xsl:for
-
each select="workshop">
<TR>
<TD COLSPAN="3" CLASS="lightBackground">
<span class="largehd"><xsl:text>Workshop Title: </xsl:text>
<xsl:v
alue
-
of select="workshopName"/></span>
</TD>
</TR>
<TR>
<TD COLSPAN="2">
<H2><xsl:text>Description:</xsl:text></H2> <xsl:value
-
of
select="description"/>
</TD>
<TD WIDTH="275" ROWSPAN="3">
<TABLE WIDTH="275" BORDER="0">
<xsl:
for
-
each select="instructors">
<TR>
<TD>
<IMG>
<xsl:attribute name="SRC">
<xsl:value
-
of
select="instructor/instructorPic/@filename"/>
</xsl:attribute>
<xsl
:attribute name="ALT">
<xsl:value
-
of
select="instructor/instructorPic/@value"/>
</xsl:attribute>
</IMG>
</TD>
</TR>
<TR>
14
<TD>
<span class="smallhd"><xsl:text>Instru
ctor:
</xsl:text></span>
<xsl:value
-
of select="instructor/firstName"/><xsl:text>
</xsl:text>
<xsl:value
-
of select="instructor/lastName"/>
</TD>
</TR>
<TR>
<TD>
<span class="smallhd"><
xsl:text>Email: </xsl:text></span>
<xsl:value
-
of select="instructor/emailAddress"/>
</TD>
</TR>
</xsl:for
-
each>
</TABLE>
</TD>
</TR>
<TR>
<TD WIDTH="235">
<span class="smallhd"><xsl:text>Date: </xsl:te
xt></span>
<xsl:value
-
of select="date"/>
</TD>
<TD WIDTH="265">
<span class="smallhd"><xsl:text>Time: </xsl:text></span>
<xsl:value
-
of select="startTime"/>
-
<xsl:value
-
of
select="endTime"/>
</TD>
</TR>
<TR>
<TD COLS
PAN="2">
<span class="smallhd"><xsl:text>Cost: </xsl:text></span>
$<xsl:value
-
of select="cost"/></TD>
</TR>
</xsl:for
-
each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
Sample HTML Output
15
4
.(cont.) One Example of HTML Page Output:
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Comments 0
Log in to post a comment