More XML XML schema XPATH XSLT CS 502 20020214 Carl Lagoze Cornell University Cornell CS 502 A little context Traditional Library Central control Uniform expertise DTD Tag Sets RDF Semantic Relationships DAML OIL Concept Building Xpath Data Decomposition XSLT Data Transformation Schema Type Definition Namespaces Concept Integration Traditional Web Distributed interlinked Viewable Documents XML URIs HTTP Markup Syntax Name Convention Access Method 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 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 Cornell CS 502 Simple Value Types Restriction on type of content Syntax xs element name xxx type yyy Examples xs element name lastname type xs string xs element name age type xs number xs element name age type xs date Cornell CS 502 Facets Restrictions on values within type context Examples Cornell CS 502 Simple Example Memo Schema http www cs cornell edu Courses cs502 2002SP Demos xmlschema memo xsd Memo Instance Document http www cs cornell edu Courses cs502 2002SP Demos xmlschema memo xml Cornell CS 502 Type extension restriction Cornell CS 502 Type Reuse Cornell CS 502 Type Reuse Example Base Type Definition http www cs cornell edu Courses cs502 2002SP D emos xmlschema address xsd Type Use http www cs cornell edu Courses cs502 2002SP De mos xmlschema person xsd Instance Document http www cs cornell edu Courses cs502 2002SP D emos xmlschema person xml Cornell CS 502 DTD XML Schema Equivalence DTD Example http www cs cornell edu Courses cs502 2002SP De mos xmlschema channel dtd Equivalent Schema http www cs cornell edu Courses cs502 2002SP De mos xmlschema channel xsd Instance Document http www cs cornell edu Courses cs502 2002SP De mos xmlschema channel xml 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 xpath 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 Cornell CS 502 Axis child all children of context descendent all children grandchildren parent ancestor Cornell CS 502 Node Test Element name e g Book Wildcard Type where type is node text etc Cornell CS 502 Predicate Boolean and comparative operators Types Numbers Strings node sets Functions Examples boolean starts with string string number count node set Cornell CS 502 Combining all into a location set specification Syntax axis node test predicate Examples child Book position 3 first three Book child elements of context child Book attribute color color attributes of Book child elements of context 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 Cornell CS 502 XML Transformations XSLT Origins separate rendering from data Roots in CSS W3C Recommendation http 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 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 Cornell CS 502 XSLT Processing Model XSLT parse Input XML doc Cornell CS 502 Parsed tree serialize Xformed tree Output doc xml html etc XSLT engine XML input XSLT program Cornell CS 502 XSLT Engine SAXON Output Document xml html Stylesheet Document or Program XML document rooted in stylesheet 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 Cornell CS 502 Template Form Elements from xsl namespace are transform instructions Match attribute value is xpath expression Non xsl namespace elements are literals Cornell CS 502 A simple example XML base file http www cs cornell edu Courses cs502 2002SP Dem os xslt simple xml XSLT file http www cs cornell edu Courses cs502 2002SP Demo s xslt simple xsl Cornell CS 502 XSLT Recursive Programming Style Document driven template matching Conflict resolution rules Mode setting xsl apply templates mode this xsl template match foo mode this xsl template match foo mode that Context setting xsl apply templates select bar 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 Cornell CS 502 For each programming example XML base file http www cs cornell edu Courses cs502 2002SP Dem os xslt foreach xml XSLT file http www cs cornell edu Courses cs502 2002SP De mos xslt foreach xsl Cornell CS 502 Call template programming example XML base file http www cs cornell edu Courses cs502 2002SP De mos xslt call xml XSLT file http www cs cornell edu Courses cs502 2002SP De mos xslt call xsl Cornell CS 502 Result Tree Creation Literals any element not in xsl namespace xsl text content directly to output xsl value of expression processing xsl copy and xsl copyof Copy current node or selected nodes into result tree xsl element instantiate an element xsl attribute instantiate an attribute Cornell CS 502 Various other programming constructs Conditionals Variables declaration and use Some type conversion Sorting Cornell CS 502 Resources XSLT WROX Press ISBN 1 861005 06 7 W3C XSLT Page http www w3 org Style XSL Arbortext XSL Tutorial http www nwalsh com docs tutorials xsl Cornell CS 502
View Full Document
Unlocking...