Vous êtes sur la page 1sur 13

XML, XSLT, XPath, XQuery

5 Aug 2002
Introduction
XML (eXtensible Markup Language)
Holding data
XSLT (eXtensible Style Language Transform)
Transform one XML to another XML or other text
such as HTML
XPath (XML Path)
A way to locate items in a XML file
XQuery (XML Query)
Query on one or more XML file to produce another
XML file
Analogy
XML view Database view
XML Data
XSLT HTML with ASP,JSP
XPath Referring to a field, such as
Student.id
XQuery SQL
RDMS enforced constraint Self-describing
storage Exchange and sharing
structured Semi-structured
Properties
Sample XML (link)
<?xml:stylesheet type="text/xsl" href="classical.xsl"?>
<authors>
<author period="Classical">
<name>Mozart</name>
<nationality>Austrian</nationality>
</author>
<author period="Classical">
<name>Beethoven</name>
<nationality>German</nationality>
</author>
<author period="Baroque">
<name>Bach</name>
<nationality>German</nationality>
</author>
<author period="Romance">
<name>Mahler</name>
<nationality>Austrian</nationality>
</author>
</authors>

Specify
XSL for display
DOM Tree
Text Node
Element Node
Root Node
Attribute Node
authors
author author author
period
Classical
name nationality
period
Classical
name nationality
period
Baroque
name nationality
Mozart Austrian
German Beethoven German Bach
Sample XSL (link)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD><TITLE>Authors</TITLE></HEAD>
<BODY>
<H1>Composers from Austria</H1>
<TABLE BORDER="1"><TR><TH>Name</TH></TR>
<xsl:for-each
select="/authors/author[nationality='Austrian']">
<TR><TD><xsl:value-of select="name" /></TD></TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
XSL version
XPath
Output (link)
Original XML
Transformed XML
Sample XSL
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD><TITLE>Authors</TITLE></HEAD>
<BODY>
<H1>Composers from classical period</H1>
<TABLE BORDER="1">
<TR><TH>Name</TH></TR>
<xsl:for-each
select="/authors/author[@period='Classical']">
<TR><TD><xsl:value-of select="name" /> </TD></TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Output
Original XML
Transformed XML
P2P Example (link)
<peer ip=137.189.89.7>
<image name=a.jpg>
<signature>15</signature>
</image>
<image name=b.jpg>
<signature>20</signature>
</image>
<image name=c.jpg>
<signature>13</signature>
</image>
<image name=d.jpg>
<signature>5</signature>
</image>
</node>
XQuery (link) (xquery)
<result>
{
FOR $i IN document(index.xml")/peer/image
WHERE $i/signature > 10 AND $i/signature < 16
RETURN $i
}
</result>

> sample f index.xml a index.xml q query.xqu

<result>
<image filename="a.jpg">
<signature>15</signature>
</image>
<image filename="c.jpg">
<signature>13</signature>
</image>
</result>
Illustration
XML
XQuery XML
XQuery engine
DTD/
schema
Validating
parser
XSL
XML/
text/
HTML
Browser
XPath
Assist
Possible Application
XML
index file
XML
index file
XML
index file
XML
index file
XML
index file
P2P
Web/
Gnutella
gateway
XQuery
XML
Web
Other P2P
client
XQuery
Other
presentation
method

Vous aimerez peut-être aussi