Download presentation
Presentation is loading. Please wait.
1
Cornell CS 502 More XML XML schema, XPATH, XSLT CS 502 – 20020214 Carl Lagoze – Cornell University
2
Cornell CS 502 A little context Traditional Library Central control Uniform expertise Traditional Web Distributed, interlinked Viewable Documents XML Markup Syntax URIs Name Convention HTTP Access Method Schema Type Definition Namespaces Concept Integration Xpath Data Decomposition XSLT Data Transformation DTD Tag Sets RDF Semantic Relationships DAML+OIL Concept Building
3
Cornell CS 502 XML Schema Define… elements attributes Nesting structure (parent/child rela.) Sibling sequence Sibling cardinality Presence or absence of text values Element and attribute data types Element and attribute default values
4
Cornell CS 502 Simple vs. Complex Values Element with complex value contains other elements (has children) Element with simple value does not have children (e.g. text).
5
Cornell CS 502 Simple Value Types Restriction on type of content Syntax – Examples –
6
Cornell CS 502 Facets Restrictions on values within type context Examples
7
Cornell CS 502 Simple Example Memo Schema –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/memo.xsdhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/memo.xsd Memo Instance Document –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/memo.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/memo.xml
8
Cornell CS 502 Type extension/restriction
9
Cornell CS 502 Type Reuse
10
Cornell CS 502 Type Reuse Example Base Type Definition –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/address.xsdhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/address.xsd Type Use –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/person.xsdhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/person.xsd Instance Document –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/person.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/person.xml
11
Cornell CS 502 DTD & XML Schema Equivalence DTD Example –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.dtdhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.dtd Equivalent Schema –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.xsdhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.xsd Instance Document –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xmlschema/channel.xml
12
Cornell CS 502 XPath Language for addressing parts of an XML document –XSLT –Xpointer Tree model similar to DOM W3C Recommendation (1999) –http://www.w3.org/TR/xpathhttp://www.w3.org/TR/xpath
13
Cornell CS 502 Xpath Concepts Context Node –current node in XML document that is basis of path evaluation –Default to root Location Steps – selection from context node –Axis – sub-tree(s) selection from context node –Node Test – select specific elements or node type(s) –Predicates – predicate for filtering after axis and node tests
14
Cornell CS 502 Axis child: all children of context descendent: all children, grandchildren, … parent: ancestor
15
Cornell CS 502 Node Test Element name: e.g. “Book” Wildcard: * Type(): where type is “node”, “text”, etc.
16
Cornell CS 502 Predicate Boolean and comparative operators Types –Numbers –Strings –node-sets Functions –Examples boolean starts-with(string, string) number count(node-set)
17
Cornell CS 502 Combining all into a location set specification Syntax: axis::node-test[predicate] Examples: –child::Book[position() child elements of context –child::Book/attribute::color – “color” attributes of child elements of context
18
Cornell CS 502 Abbreviations Child axis is default –child::Book Book Attribute axis @ –Book[position() = 1]/@color “.” (self), “..” (parent), “//” (descendent-or-self) position() = n n Example –Book[2]/@color
19
Cornell CS 502 XML Transformations (XSLT) Origins: separate rendering from data –Roots in CSS W3C Recommendation –http://www.w3.org/TR/xslthttp://www.w3.org/TR/xslt Generalized notion of transformation for: –Multiple renderings –Structural transformation between different languages –Dynamic documents XSLT – rule-based (declarative) language for transformations
20
Cornell CS 502 XSLT Capabilities Generate constant text Filter out content Change tree ordering Duplicate nodes Sort nodes Any computational task (XSLT is “turing complete”)
21
Cornell CS 502 XSLT Processing Model Input XML doc Parsed tree Xformed tree Output doc (xml, html, etc) parse XSLTserialize
22
Cornell CS 502 XSLT “engine” XML input XSLT “program ” XSLT Engine (SAXON) Output Document (xml, html, …)
23
Cornell CS 502 Stylesheet Document or Program XML document rooted in element Body is set of templates –Xpath expression specifies elements in source tree –Body of template specifies contribution of source elements to result tree Not sequential execution
24
Cornell CS 502 Template Form Elements from xsl namespace are transform instructions Match attribute value is xpath expression Non-xsl namespace elements are literals.
25
Cornell CS 502 A simple example XML base file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/simple.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/simple.xml XSLT file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/simple.xslhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/simple.xsl
26
Cornell CS 502 XSLT Recursive Programming Style Document driven, template matching –Conflict resolution rules –Mode setting –Context setting
27
Cornell CS 502 XSLT Procedural Programming Sequential programming style Basics –for-each – loop through a set of elements –call-template – like a standard procedure call
28
Cornell CS 502 For-each programming example XML base file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/foreach.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/foreach.xml XSLT file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/foreach.xslhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/foreach.xsl
29
Cornell CS 502 Call-template programming example XML base file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/call.xmlhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/call.xml XSLT file –http://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/call.xslhttp://www.cs.cornell.edu/Courses/cs502/2002SP/Demo s/xslt/call.xsl
30
Cornell CS 502 Result Tree Creation Literals – any element not in xsl namespace - content directly to output - expression processing and - Copy current node or selected nodes into result tree - instantiate an element - instantiate an attribute
31
Cornell CS 502 Various other programming constructs Conditionals Variables (declaration and use) Some type conversion Sorting
32
Cornell CS 502 Resources XSLT – WROX Press –ISBN 1-861005-06-71-861005-06-7 W3C XSLT Page –http://www.w3.org/Style/XSL/http://www.w3.org/Style/XSL/ Arbortext XSL Tutorial –http://www.nwalsh.com/docs/tutorials/xsl/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.