XML : XSL Transformations, Level 1 

Overview:    This course introduces the XSLT language (eXtensible Stylesheet Language Transformations). The XSLT specification is maintained by the W3C (World Wide Web Consortium) and is a core part of the growing family of XML technologies. A related XML technology is the XPath language, which is required for using XSLT stylesheets. Students in this course will therefore learn the basic elements of the XSLT language, as well as the syntax of XPath. The numerous built-in XPath functions are also covered thoroughly. Using XSLT and XPath, students will transform XML documents into other XML documents, and into HTML for display in a browser. The MSXML parser is used in conjunction with the Internet Explorer browser for data examples. 

Prerequisites:    This course was designed for the student who is familiar with the general concepts involved in XML. Students should have a solid grounding in HTML. Some knowledge of basic programming concepts and/or experience with Web scripting (VBScript or JavaScript) would be helpful. Prior to taking this course, students should take the following Element K courses or have equivalent knowledge: 
•	HTML 4.0 Level 1 : 
•	HTML 4.0 Level 2 : 
•	Cascading Style Sheets : 
•	XML Introduction : 
•	Introduction to Programming : 

Delivery Method:    Instructor-led, group-paced, classroom-delivery learning model with structured hands-on activities. 

Benefits:    Students will learn the basics of the XSLT and XPath languages. This includes how to work with XSLT templates, various XSLT elements including conditional elements, recursive techniques, XPath pattern matching, XPath filters, and the numerous built-in XPath functions. 

Target student:    This course is for anyone already introduced to the basics of XML and its related technologies, and who is interested in XML programming. Students should have a strong background with HTML, and preferably have some knowledge of CSS and general programming concepts. 

Hardware/software required to run this course 
•	A Pentium-based PC, 133 MHz or higher. 
•	32 MB RAM minimum (64 MB RAM recommended). 
•	Windows 95/98/ME/NT/2000. 
•	A text editor; for example, Notepad or Allaire's HomeSite. 
•	MS Internet Explorer 5.0 or higher. 
•	MSXML 3.0 Parser or higher. 

Performance-based objectives
Lesson objectives help students become comfortable with the course, and also provide a means to evaluate learning. Upon successful completion of this course, students will be able to:
•	Use the MSXML stylesheet processor to view the output of an XSLT transformation. 
•	Transform an XML document into both HTML and alternate XML documents. 
•	Control XSLT output by using multiple templates and adding new content during document processing. 
•	Use conditional elements to control XSLT processing flow. 
•	Use Node-set and Boolean related XPath functions in XPath expressions. 
•	Use String and Number related XPath functions in XPath expressions. 
Lesson 1: Introduction to XML Output
       What is a Stylesheet?Viewing XML Formatted with Various StylesheetsExploring an XSLT StylesheetExploring the Differences in XSLT Versions

Lesson 2: Basic XSLT Templates
       XSLT BasicsCreating the Outline Foundation of an XSLT StylesheetXPath PracticeOutputting Element ContentOutputting Attribute ValuesUsing HTML with XSLTFormatting XSLT Output With HTMLUsing a Simplified StylesheetOutput Other Than HTMLTransforming XML to XML

Lesson 3: Basic XSLT Templates, Part 2
       The Nature of XSLT TemplatesUsing <xsl:apply-templates> To Control Processing FlowComparing <xsl:apply-templates> and <xsl:call-template>Sorting Elements in <xsl:for-each> and <xsl:apply-templates>ContextsElements, Attributes, Comments, and TextUsing <xsl:element> ElementsUsing <xsl:attribute> ElementsExploring the uses of XSLT Comments and Text

Lesson 4: XSLT Conditional Elements
       If/Then ConditionalsUsing the <xsl:if> ElementTesting Multiple ConditionsUsing <xsl:choose> ElementsUsing <xsl:for-each> as a ConditionalFiltering and Order Control with <xsl:for-each>

Lesson 5: XPath Node-Set and Boolean Functions
       XPath Node-Set FunctionsUsing last(), count(), and position()Retrieving Element Names and Their Text ValuesXPath Boolean FunctionsUsing Simple Boolean FunctionsUsing the lang() Function

Lesson 6: XPath String and Number Functions
       XPath String FunctionsUsing Simple String FunctionsUsing contains() and starts-with()Using Substring Functions With Date StringsXPath Number FunctionsUsing XPath Number Functions

Appendix A: XSLT Elements

Appendix B: XPath Functions
       XPath Syntax
       XPath Functions