xml-xsl introduction shiju rajan shiju rajan outline brief overview brief overview what is xml? what...

35
XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN

Upload: evelyn-padilla

Post on 26-Mar-2015

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XML-XSL Introduction

SHIJU RAJANSHIJU RAJAN

Page 2: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Outline Brief OverviewBrief Overview What is XML?What is XML?

Well Formed XMLWell Formed XML Tag Name Rules Tag Name Rules Comments & Processing InstructionsComments & Processing Instructions XML ValidationXML Validation XML Name SpaceXML Name Space Special Character EntitiesSpecial Character Entities XML ExampleXML Example

Displaying XML with CSSDisplaying XML with CSS

Page 3: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Outline Contd…

What is XSL? Transforming XML: XSLT

An Example

Nodes and Xpath XPath Essentials Templates

Calling Templates

Page 4: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Outline Contd… Push vs. Pull Processing Selecting Elements and Attributes Decision Structure: Choose Decision Structure: If Looping XSLT Example XML to XHTML on the Server Conclusion

Page 5: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

What is XML?

XML stands XML stands for EXtensible Markup Language Markup Language XML was designed to XML was designed to describe describe data XML tags are not predefined. You must define

your own tags XML uses a Document Type Definition (DTD) or

an XML Schema to describe the data

Page 6: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Well-formed XML Tags must be suitably namedTags must be suitably named Single Root ElementSingle Root Element Follows general tagging rules:

All tags begin and end • But can be minimized if empty: <br/> instead of <br></br>

All tags are case sensitive All tags must be properly nested

• <sd> <firstname>William</firstname> <lastname>Russell</lastname> </sd>

All attribute values are quoted• <book sno=“1”> W.Shakespeare </ book>

Page 7: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Tag Name Rules

Must start with letter, colon or underscoreMust start with letter, colon or underscore Must only letters and numbersMust only letters and numbers characters characters -- _ . :_ . : The colon is reserved for W3C useThe colon is reserved for W3C use

Page 8: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Comments & Processing Instructions You can embed comments in your XML just like You can embed comments in your XML just like

in HTMLin HTML : : <!-- Whatever is here (whether text or markup) will

be ignored on processing -->

A processing instruction tells the XML parser information it needs to know to properly process an XML document

<?xml-stylesheet type="text/xsl" href="xslexample.xsl"?>

Page 9: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XML Validation

Uses only specific tags and rules as codified by one of A document type definition (DTD) A schema definition

Only the tags listed by the schema or DTD can be used

Software can take a DTD or schema and verify that a document adheres to the rules

Page 10: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XML Name Space

XML Namespaces provide a method to avoid element name conflicts.

This XML document carries information in a table:

<table><tr><td>Food</td></tr></table>

This XML document carries information about a table:

<table> <name>London</name><size>100 Miles</size></table>

If these two XML documents were added together, there would be an element name conflict because both documents contain a <table> element with different content and definition.

Page 11: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Solving Name Conflicts using a Prefix This XML document carries information in a table:This XML document carries information in a table: <h:table> <h:tr> <h:td>Food</h:td> </h:tr> </h:table>

This XML document carries information about a city:

<f:table><f:table> <f:name>London</f:name> <f:name>London</f:name> <f:size>100 Miles</f:size><f:size>100 Miles</f:size> </f:table></f:table>

Page 12: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Using Namespaces

This XML document carries information in a table:This XML document carries information in a table:

<h:table xmlns:h="http://www.w3.org/TR/html4/"><h:table xmlns:h="http://www.w3.org/TR/html4/">

<h:tr><h:tr>

<h:td>Food</h:td><h:td>Food</h:td>

</h:tr></h:tr>

</h:table></h:table>

This XML document carries information about a city:This XML document carries information about a city:

<f:table xmlns:f="http://www.w3schools.com/city"><f:table xmlns:f="http://www.w3schools.com/city">

<f:name>London</f:name><f:name>London</f:name>

<f:width>100 Miles</f:width><f:width>100 Miles</f:width>

</f:table></f:table>

Page 13: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

The XML Namespace (xmlns) The XML Namespace (xmlns) Attribute Attribute

The XML namespace attribute is placed in the start tag of an element and has the following syntax:

xmlns:namespace-prefix="namespaceURI"

The address used to identify the namespace is not used by the parser to look up information. The only purpose is to give the namespace a unique name. However, very often companies use the namespace as a pointer to a real Web page containing information about the namespace.

Page 14: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Special Character Entities

There are 5 characters that are reserved for special There are 5 characters that are reserved for special purposes; therefore, to use these characters when purposes; therefore, to use these characters when not part of XML tags, you must use an entity not part of XML tags, you must use an entity reference:reference: & (ampersand) becomes: &amp;& (ampersand) becomes: &amp; < (less than) becomes: &lt;< (less than) becomes: &lt; > (greater than) becomes: &gt;> (greater than) becomes: &gt; ‘ ‘ (apostrophe) becomes: &apos;(apostrophe) becomes: &apos; “ “ (quote) becomes: &quot;(quote) becomes: &quot;

Page 15: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XML Example <?xml version="1.0"?><?xml version="1.0"?><bookstore><bookstore> <book sno=”1”><book sno=”1”> <author>W.Shakespeare</author><author>W.Shakespeare</author> <title>Hamlet</title><title>Hamlet</title> <published>1997</published><published>1997</published> <price>2.95</price> <price>2.95</price> </book> </book> <book sno=”2”><book sno=”2”> <author>W.Shakespeare</author><author>W.Shakespeare</author> <title>Macbeth</title><title>Macbeth</title> <published>1989</published><published>1989</published> <price>9.95</price> <price>9.95</price> </book> </book> </bookstore></bookstore>

Page 16: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Displaying XML with CSS

Must put a processing instruction at the top of your XML file (but below the XML declaration): <?xml-stylesheet type="text/css" href="style.css"?>  

Example style.css book{

font-size:12;

}

Page 17: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

What is XSL?

XSL stands for EXtensible Stylesheet Language.XSL stands for EXtensible Stylesheet Language. XSL describes how the XML document should be XSL describes how the XML document should be

displayed! This is the Preferred language for displayed! This is the Preferred language for processing XML.processing XML.

XSL consists of three parts:XSL consists of three parts: XSLTXSLT - - a language for transforming XML documents XPath XPath - - a language for navigating in XML documents XSL-FOXSL-FO - - a language for formatting XML documents

Page 18: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Transforming XML: XSLT XML Stylesheet Language — Transformations XML Stylesheet Language — Transformations

(XSLT)(XSLT) A markup language and programming syntax for A markup language and programming syntax for

processing XML processing XML Is most often used to:Is most often used to:

Transform XML to HTML for delivery to standard Transform XML to HTML for delivery to standard web clientsweb clients

Transform XML from one set of XML tags to Transform XML from one set of XML tags to anotheranother

Transform XML into another syntax/systemTransform XML into another syntax/system

Page 19: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Example: XML Document:XML Document:

<?xml version="1.0"?><?xml version="1.0"?>

<greeting>Hello, World!</greeting><greeting>Hello, World!</greeting>

Desired Output:Desired Output: <html><html>

<head><title>Greeting</title></head><head><title>Greeting</title></head> <body><p>Hello, World!</p></body><body><p>Hello, World!</p></body> </html></html>

XSLT Stylesheet:XSLT Stylesheet:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/"> <html><head><title>Greeting</title></head> <body><p><xsl:value-of select="greeting"/></p></body> </html> </xsl:template> </xsl:stylesheet>

Page 20: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XLST XSLT is based on the process of matching XSLT is based on the process of matching

templates to nodes of the XML treetemplates to nodes of the XML tree Working down from the top, XSLT tries to match Working down from the top, XSLT tries to match

segments of code to:segments of code to: The root element The root element Any child nodeAny child node And on down through the documentAnd on down through the document

We can specify different processing for each We can specify different processing for each element if you wish element if you wish

Page 21: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Nodes and XPath

An XML document is a collection of nodes that An XML document is a collection of nodes that can be identified, selected, and acted upon using can be identified, selected, and acted upon using an Xpath statementan Xpath statement

Examples of nodes: root, element, attribute, textExamples of nodes: root, element, attribute, text

Page 22: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XPath Essentials

//book = Select all <book> elements of the root node//book = Select all <book> elements of the root node //book[@sno=‘1’] = Select all <book> elements of the root //book[@sno=‘1’] = Select all <book> elements of the root

node that have a sno attribute with the value ‘1’node that have a sno attribute with the value ‘1’ //book/author = Select all <author> elements that have an //book/author = Select all <author> elements that have an

<book> element as a parent<book> element as a parent A period (.) denotes the current context node (e.g., ./author A period (.) denotes the current context node (e.g., ./author

selects any author tag that is a child of the current nodeselects any author tag that is a child of the current node Two periods (..) denote the parent node of the current Two periods (..) denote the parent node of the current

contextcontext

Page 23: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Templates

An XSLT stylesheet is a collection of templates that act against specified nodes in the XML source tree

For example, this template will be executed when a <para> element is encountered: <xsl:template match="para"> <p><xsl:value-of select="."/></p> </xsl:template>

Page 24: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Calling Templates A template can call other templates By default (tree processing):

<xsl:apply-templates/> [processes all children of the <xsl:apply-templates/> [processes all children of the current node]current node]

Explicitly: <xsl:apply-templates select=“/book/author”/> <xsl:apply-templates select=“/book/author”/>

[processes all < author > elements of the current node][processes all < author > elements of the current node] <xsl:call-template name=“title”/> <xsl:call-template name=“title”/>

[processes the named template, regardless of the source[processes the named template, regardless of the source tree]tree]

Page 25: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Push vs. Pull Processing In push processing, the source document controls

the order of processing (e.g., CSS is strictly pull processing); e.g.,

<xsl:apply-templates/><xsl:apply-templates/> Pull processing can address particular elements in

the source tree regardless of position in the source document; e.g.,

<xsl:apply-templates select =“//title”/>=“//title”/>

Page 26: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Selecting Elements and Attributes

To select the contents of a particular element, use this <xsl:select>statement::

<xsl:select value-of=“XPATH STATEMENT”/><xsl:select value-of=“XPATH STATEMENT”/>

<xsl:select value-of=“/book/title”/><xsl:select value-of=“/book/title”/> To select the contents of an attribute of a

particular element, use an XPath statement like:

<xsl:select value-of=“/book[@sno]”/>

Page 27: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Decision Structure: Choose

A way to process data differently based on specified criteria; if you don’t need “otherwise”, you can use <xsl:if>

<xsl:choose><xsl:choose>

<xsl:when test="<xsl:when test="SOME STATEMENT">">

CODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUECODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUE

</xsl:when></xsl:when>

<xsl:when test="SOME OTHER STATEMENT"><xsl:when test="SOME OTHER STATEMENT">

CODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUECODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUE

</xsl:when></xsl:when>

<xsl:otherwise><xsl:otherwise>

DEFAULT CODE HERE, IF THE ABOVE TWO TESTS FAIL

</xsl:otherwise></xsl:otherwise>

</xsl:choose></xsl:choose>

Page 28: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Decision Structure: If

A decision structure when you don’t need a default decision (otherwise use xsl:choose instead)

<xsl:if test="SOME STATEMENT"><xsl:if test="SOME STATEMENT"> CODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUE TRUE

</xsl:if></xsl:if> <xsl:if test="SOME OTHER STATEMENT"><xsl:if test="SOME OTHER STATEMENT">

CODE HERE TO BE EXECUTED IF THE STATEMENT IS TRUE

</xsl:if></xsl:if>

Page 29: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Looping

XSLT looping selects a set of nodes using an Xpath expression, and performs the same operation on each; e.g.,

<xsl:for-each select=EXPRESSION>

CODE HERE

</xsl:for-each>

Page 30: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name
Page 31: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name
Page 32: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name
Page 33: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

XML to XHTML on the Server Following is the ASP source code for Following is the ASP source code for

transforming XML file to XHTML on the server:transforming XML file to XHTML on the server: <%<%

'Load XML'Load XML

set xml = Server.CreateObject("Microsoft.XMLDOM")set xml = Server.CreateObject("Microsoft.XMLDOM")

xml.async = falsexml.async = false

xml.load(Server.MapPath("bookstore.xml"))xml.load(Server.MapPath("bookstore.xml"))

'Load XSL'Load XSL

set xsl = Server.CreateObject("Microsoft.XMLDOM")set xsl = Server.CreateObject("Microsoft.XMLDOM")

xsl.async = falsexsl.async = false

xsl.load(Server.MapPath("bookstore.xsl"))xsl.load(Server.MapPath("bookstore.xsl"))

'Transform file'Transform file

Response.Write(xml.transformNode(xsl))Response.Write(xml.transformNode(xsl))

%>%>

Page 34: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Conclusion

Begin transitioning to XML Begin transitioning to XML now:now: XHTML and CSS for web files, XML for static XHTML and CSS for web files, XML for static

documents with long-term worthdocuments with long-term worth

Do not rely on browser support of XML

Page 35: XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name

Thank You Thank You

Happy Programming!!!!!!Happy Programming!!!!!!