Title: Transforming XML Part I
1Transforming XML Part I
- Document Navigation with XPath
John Arnett, MSc Standards Modeller Information
and Statistics Division NHSScotland Tel 0131 551
8073 (x2073) mailtoJohn.Arnett_at_isd.csa.scot.nhs.u
k http//isdscotland.org/xml
2Contents
- Document Processing
- Nodes and Trees
- XPath Locating Nodes
- Summary
- Find Out More
3Document Processing
- The XSL Family
- XPath (XML Path Language)
- XSLT (Extensible Stylesheet Language
Transformations) - XSL aka XSL-FO (Extensible Stylesheet Language
Formatting Objects)
4Document Processing
- XPath
- Used to locate specific parts of an XML source
document efficiently and effectively - XPath v1.0 W3C Recommendation
5Document Processing
- XSLT
- Used to transform XML documents to another XML or
non-XML form esp. HTML - XSLT v1.0 W3C Recommendation
- v2.0 W3C Working Draft
- Uses XPath for locating document content
6Document Processing
- XSL(-FO)
- Used to format XML documents into fixed sized
folios for publication - XSL v1.0 W3C Recommendation
- Uses XSLT for document transformation
7Document Processing
- Transformation and formatting
- XPath used to locate nodes for input
- XSLT used to transform input and generate result
tree - XSL-FO used to format output document
8Document Processing
Source Tree
Stylesheet Processor
Formatted Output
Result Tree
Format
Transform
Style sheet
Adapted from XSLT Basics slide presentation by
Paul Spencer, alphaXML
9Trees and Nodes
- XML document is viewed as a source tree
containing different node types
- root
- element
- text
- attribute
- namespace
- processing instruction
- comment
10Trees and Nodes
lt!-- radiology appointment --gt ltAppointment
deptCodeRADIOgt ltPatient upiABC-123-456gtJoh
n Smith ltPhoneNogt0141 662 2673lt/PhoneNogt
lt/Patientgt ltCliniciangtAlison
Younglt/Cliniciangt ltSlot attendDate2003-08-05gt
ltStartTimegt143000lt/StartTimegt lt/Slotgt
lt/Appointmentgt
11Trees and Nodes
- XPath view of Appointment source tree
12XPath Locating Nodes
- XPath expressions (location paths)
- Used to navigate source tree and locate nodes for
input - Comprised of one or more location steps
- axis node test (optional) predicate
- May contain functions, e.g.
- position(), count(node-set), last()
13XPath Locating Nodes
- Axes
- Specify node locations relative to the current
(context) node self - May traverse tree forwards or backwards
14XPath Locating Nodes
- Axes for forward traversal
- child
- attribute
- descendant-or-self
- descendant
- following
- following-sibling
- namespace
15XPath Locating Nodes
- Axes for reverse traversal
- parent
- ancestor
- ancestor-or-self
- preceding
- preceding-sibling
16XPath Locating Nodes
- Node Tests
- Refine node set selection
- select all nodes of same type
- node() select all nodes of any type
- Select all nodes of type text(), comment() or
processing-instruction() - Select all nodes with specified name
17XPath Locating Nodes
- Select Clinician element node
- childAppointment/childClinician or
- Appointment/Clinician
18XPath Locating Nodes
- Select upi attribute node
- childPatient/attributeupi or
- Patient/_at_upi
19XPath Locating Nodes
- Select all descendant text nodes
- /descendant-or-selfnode()/childtext() or
- //text()
20XPath Locating Nodes
- Select parent of StartTime element
- parentnode() or ..
21XPath Locating Nodes
22XPath Locating Nodes
- Abbreviating location steps
- child and text() can usually be omitted
childAppointment/childClinician/childtext()
Appointment/Clinician
- attribute _at_
- Patient/_at_upi
- self()node .
- parentnode() ..
23XPath Locating Nodes
- Abbreviating Location Paths
- /descendant-or-selfnode()/ //
- /descendant-or-selfnode()/childtext()
//text()
24In Summary
- XML document processing
- XPath - node location
- XSLT - transformation
- XSL-(FO) - document formatting
- XPath used to navigate source tree
- Transformation performed by applying style sheet
to source document
25Find Out More
- The Extensible Stylesheet Language Family (XSL)
- www.w3.org/Style/XSL/
- W3C XML Path Language v1.0 Specification
- www.w3.org/TR/xpath
- TopXML XSLT XPath Tutorial
- www.vbxml.com/xsl/tutorials/intro/default.asp