SD2520
Introduction to Database and XML with jQuery
Module 2
MODULE 2: CREATING XPATH QUERIES AND XML SCHEMA
COURSE LEARNING OBJECTIVES COVERED
Write XPath statements to retrieve data from an XML document.
Use XML schemas to define the structure of an XML document.
TOPICS COVERED
Selecting and Locating a Node
Using XPath Functions (Compare, Multiply, Divide, Add, Subtract, Total, Format,
Casing)
Exploring XML Schema and XML Document
Defining a Simple Type Element and Custom Simple Types
Deriving List and Union Types
Defining and Deriving Anonymous and Complex Types
MODULE LEARNING ACTIVITIES
Reading: Introduction to Database and XML with jQuery:
Chapter 10, pp. 184–195
Chapter 11, pp. 196–206
Chapter 12, pp. 207–211
Chapter 13, pp. 212–229
Chapter 14, pp. 230–253
Lesson: Study the lesson for this module.
Lab 1: Complete the lab titled “Writing XPath Queries.”
Lab 2: Complete the lab titled “Creating and Applying XML Schema.”
Research: Complete the research titled “Exploring XML Schema.”.
Project: Continue work on Project Part 1..
Quiz: Prepare for Quiz 1.
LAB 2.1 (3.5 HOURS)
Assessment Preparation Checklist:
To prepare for this assessment:
 Go through Chapters 10, pp. 184–195 and 11, pp. 196–206 in the textbook, Introduction to
Database and XML with jQuery. These chapters describe XPath patterns, expressions, and
functions.
 Go through this module’s lesson that describes the use and application of XPath functions.
Title: Writing XPath Queries
In this lab, you will write XPath queries to retrieve specific information from an XML file using XSL.
Required Setup and Resources:




Windows XP (or later)
Visual Studio 2010 (or any other XML editor)
Internet Explorer (or any other web browser)
Mod2Lab1Starter.zip
1
SD2520
Introduction to Database and XML with jQuery
Module 2
Recommended Procedure:
Note: For the steps in which you require to paste the screen shot or answer a question, document your
response in a Word worksheet titled “SD2520_Module 2_Lab2_1.docx”. Make sure you assign the
corresponding task number against each response or screen shot.
Task 1: Using XPath to Set the Context
1. Launch ITT-Lab in VMware Player.
2. Copy Mod2Lab1Starter.zip to the My Documents folder in ITT-Lab and extract the files.
3. Launch Visual Studio.
4. Open the wonders_master.xml file from the Mod2Lab1Starter folder.
5. Create a new XSLT file.
6. Save it as nnMod2Lab2.xslt, where the letters nn stand for your initials.
7. Open 03-03.xsl.
8. Copy the contents and paste them in nnMod2Lab2.xlt.
Question 1: If you were to use this .xslt to process wonders_master.xml, which would be the
current node when the file begins processing?
____________________________________________________________________________
9. Test the .xslt file using wonders_master.xml. Take a screen shot and paste it in your worksheet.
10. Modify the first xsl:apply-templates statement as follows:
<xsl:apply-templates select="/ancient_wonders/wonder">
Question 2: Test your change. Did the output change? Why or why not?
____________________________________________________________________________
11. Modify the first xsl:apply-templates statement as follows:
<xsl:apply-templates select="/ancient_wonders/wonder
[position()=last()]">
12. Test your change. Take a screen shot and paste it in your worksheet.
13. Add the following markup immediately beneath the </table> tag:
<h2>History</h2>
<xsl:apply-templates
select="ancient_wonders/wonder/history">
<xsl:sort select="year_built" order="descending" datatype="number" />
</xsl:apply-templates>
2
SD2520
Introduction to Database and XML with jQuery
Module 2
Question 3: What is the <history> element's relationship to the <wonder> element?
____________________________________________________________________________
14. Add the following markup immediately before the </xsl:stylesheet> tag.
<xsl:template match="history">
<a><xsl:attribute name="name"><xsl:value-of
select="../name[@language='English']"/></xsl:attribute></a>
The <xsl:value-of select="../name[@language='English']"/>
<xsl:apply-templates select="../name[@language!='English']"/>
was built in <xsl:value-of select="year_built"/><xsl:text>
</xsl:text><xsl:value-of select="[email protected]"/>
<xsl:choose>
<xsl:when test="year_destroyed != 0">
and was destroyed by <xsl:value-of select="how_destroyed"/>
in <xsl:value-of select="year_destroyed"/> <xsl:text>
</xsl:text><xsl:value-of select="[email protected]"/>.
</xsl:when>
<xsl:otherwise>
and is still standing today.
</xsl:otherwise>
</xsl:choose>
<br /><br />
</xsl:template>
Question 4: Which node is the current node when the year_built attribute is being evaluated?
____________________________________________________________________________
Question 5: What is the relationship between the <history> element and the <name> element?
____________________________________________________________________________
15. Test your change and take a screen shot.
Question 6: What XPath notation should you use to access the <main_image> element from the
current context?
____________________________________________________________________________
3
SD2520
Introduction to Database and XML with jQuery
Module 2
16. Add markup to display the image associated with each wonder above the statement that
describes it.
17. Change the Output directory to create the HTML file in the starter folder.
18. Test your change. Take a screen shot and paste it in your worksheet.
TIP: If the pictures don’t appear when you browse in Visual Studio, open the HTML output file in
a web browser.
Task 2: Using XPath Functions
1. Comment out the <xsl:apply-templates> markup you modified in Step 13 of Task 1.
2. Add a new <xsl:apply-templates> element that selects wonders that have a height greater than
100. Sort by height in descending order. Refer to the following figure:
3. Test your change. Take a screen shot and paste it in the worksheet.
4. Add a new column named Years Standing to the table in the Overview section.
5. Use the code given in the following figure as a guide to populate the column with data. Use the
current year in your calculations for the wonders that have not been destroyed.
4
SD2520
Introduction to Database and XML with jQuery
Module 2
6. Test your change. Take a screen shot and paste it in your worksheet.
7. Modify the Height column so that it shows the height in both feet and meters. Show the height
in meters using one decimal place. Refer to the following figures:
8. Test your change. Take a screen shot and paste it in your worksheet.
5
SD2520
Introduction to Database and XML with jQuery
Module 2
Question 7: Which function would you use to round the number to an integer value?
____________________________________________________________________________
9. Modify the table so that all seven wonders are displayed.
10. Add markup immediately after the <xsl:apply-templates> markup. This sets the current context
to ancient-wonders/wonder, which adds a row to the table displaying the average height of the
wonders in feet. Refer to the following figure:
Question 8: Why do you need to add the markup here?
____________________________________________________________________________
11. Test your change. Use a calculator to verify that the value calculated is correct. Take a screen
shot and paste it in your worksheet.
12. Add markup to modify the table so that the location is displayed in two separate columns—City
and Country. Refer to the following figure:
6
SD2520
Introduction to Database and XML with jQuery
Module 2
13. Test your change. Take a screen shot and paste it in your worksheet.
Question 9: Which function would you use to remove leading and trailing whitespace from a
string?
____________________________________________________________________________
14. Submit the .xslt file along with your worksheet.
Submission Requirements:
 For this lab, you need to submit the following files to your instructor:
o The Word document titled “SD2520_Module 2_Lab2_1.docx”
o The XSLT document titled “nnMod2Lab2.xslt,” where the letters nn stand for your
initials.
Evaluation Criteria:
The lab rubric will be used to evaluate this assessment. In addition, your submission will be evaluated
against the following points:
 Did you include all the screen shots in the Word document?
 Did you successfully use XPath to generate the desired results?
 Did you answer all the questions?
7
SD2520
Introduction to Database and XML with jQuery
Module 2
LAB 2.2 (3.5 HOURS)
Assessment Preparation Checklist:
To prepare for this assessment:


Go through Chapters 12, pp. 207–211 through 14, pp. 230–253 in the textbook, Introduction to
Database and XML with jQuery. These chapters explore the basics of XML Schema. In addition,
these chapters explore how simple and complex type elements are defined.
Go through this module’s lesson that describes the use and application of XPath Schema.
Title: Creating and Applying XML Schema
In this lab, you will create and apply XML Schema to define the format of an XML file.
Required Setup and Resources:




Windows XP (or later)
Visual Studio 2010 (or any other XML editor)
Internet Explorer (or any other web browser)
Mod2Lab2Starter.zip
Recommended Procedure:
Note: For the steps in which you require to paste the screen shot or answer a question, document your
response in a Word worksheet titled “SD2520_Module 2_Lab2_2.docx”. Make sure you assign the
corresponding task number against each response or screen shot.
Task 1: Creating a Schema and Linking it to an XML
1. Launch ITT-Lab in VMware Player.
2. Copy Mod2Lab2Starter.zip to the My Documents folder on ITT-Lab and extract the files.
3. Launch Visual Studio.
8
SD2520
Introduction to Database and XML with jQuery
Module 2
4. Create a new XML Schema file.
5. Click Use XML Editor to view and edit the underlying schema.
6. Save it as nnMod2Lab2.xsd, where the letters nn stand for your initials.
Question 1: Which element is added by default?
____________________________________________________________________________
9
SD2520
Introduction to Database and XML with jQuery
Module 2
7. Define an element named <wonder> that includes child elements named "name," "location,"
and "height" of type string. Refer to the following figure:
8. Save your changes.
9. Open wonders_master.xml in your Mod2Lab2Starter folder.
10. Modify the <wonder> element to reference the schema file you saved in Step 6.
11. Add the following documentation to your schema (replace Student_Name with your name):
This schema was created by Student_Name
12. Take a screen shot of your schema markup and paste it in the worksheet.
13. Modify the <height> element to be type decimal.
14. Click View | XML Schema and expand the nodes. Take a screen shot and paste it in the
worksheet.
15. Save your changes.
Task 2: Defining the <history> Element
1. Define an element named <history> within the <wonder> element sequence.
2. Define <year_built> and <year_destroyed> elements of type integer. Use the <wonder> element
as a model.
3. Define the <how_destroyed> element as type string. Set the default to fire. Refer to the
following figure:
10
SD2520
Introduction to Database and XML with jQuery
Module 2
4. Define a simpleType named story_type immediately after your </xs:annotation> tag. The type
should be based on the xs:string type and have a maximum length of 1,024. Refer to the
following figure:
5. Define an element named <story> of story_type as a child of the <history> element.
Question 2: What is the advantage of defining a named type?
____________________________________________________________________________
6. Take a screen shot of the <history> element's schema definition and paste it in your worksheet.
7. Define a simple type named year_type that is a whole number and has a minimum value of 0
and a maximum value of 5000.
Question 3: What did you use as the base type?
___________________________________________________________________________
8. Modify the <year_built> and <year_destroyed> elements to be of type year_type.
9. Click View | XML Schema and expand the nodes. Take a screen shot and paste it in the
worksheet.
10. Save your changes.
11
SD2520
Introduction to Database and XML with jQuery
Module 2
Task 3: Creating Complex Types
1. Save your file as nnMod2Lab2b.xsd. Remember, you need to submit both the files for this lab.
2. Convert the definition for the <wonder> element to a complex type named wonderType.
3. Define a root element named <ancient_wonders> that contains a sequence of elements of type
wonderType. Refer to the following figure:
4. Convert year_type to a complex type. It should be defined as a positive integer that has an
attribute named era of type string. Refer to the following figure:
12
SD2520
Introduction to Database and XML with jQuery
Module 2
5. Convert story_type to a complex type that can contain a mix of text and elements. Refer to the
following figure:
6. Create a complex type named history_type that contains <year_built> and <story> elements,
which may or may not have a year_destroyed and how_destroyed child elements. Refer to the
following figure:
7. Modify the <history> element definition in the wonderType to be of type history_type.
8. Click View | XML Schema and expand the nodes. Take a screen shot and paste it in the
worksheet.
9. Save your changes.
Submission Requirements:

For this lab, you need to submit the following files to your instructor:
o The Word document titled “SD2520_Module 2_Lab2_2.docx”
o The XML file titled “wonder_master.xml”
o The XML Schema titled “nnMod2Lab2.xsd” and “nnMod2Lab2b.xsd”, where the letters
nn stand for your initials
Evaluation Criteria:
The lab rubric will be used to evaluate this assessment. In addition, your submission will be evaluated
against the following points:



Did you successfully create a schema using simple types?
Did you link the schema to the XML document?
Did you successfully create a schema using complex types?
13
SD2520
Introduction to Database and XML with jQuery
Module 2
Research 2.1 (3.0 hours)
Assessment Preparation Checklist:
To prepare for this assessment:

Go through Chapters 12, pp. 207–211 through 14, pp. 230–253 in the textbook, Introduction to
Database and XML with jQuery. These chapters explore the basics of XML Schema.

Go through this module’s lesson that explains how to use and apply XML Schema.
Title: Exploring XML Schema
In the ITT Tech Virtual Library and on the Internet, search for information on the use and importance of
XML Schemas.
Next, in your own words, explain a minimum of two uses of XML Schema in building XML applications.
Consider how XML Schemas can be used to ensure data consistency when transmitting data between
applications and services. Support each use with the help of an example. Your examples can be existing
applications or applications that you might someday write. Make sure that you cite the sources in APA
format.
Submission Requirements:
Submit a Microsoft Word document with following specifications:

Font: Arial; font size: 12; double-spaced

Length: 1–2 pages

Citation Style: APA
Evaluation Criteria:
This assignment will be evaluated using the research assignment rubric at my webpage.
14