1 / 25

Transforming XML Part I

Transforming XML Part I. John Arnett, MSc Standards Modeller Information and Statistics Division NHSScotland Tel: 0131 551 8073 (x2073) mailto:John.Arnett@isd.csa.scot.nhs.uk http://isdscotland.org/xml. Document Navigation with XPath. Contents. Document Processing Nodes and Trees

arawn
Download Presentation

Transforming XML Part I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Transforming XML Part I John Arnett, MSc Standards Modeller Information and Statistics Division NHSScotland Tel: 0131 551 8073 (x2073) mailto:John.Arnett@isd.csa.scot.nhs.uk http://isdscotland.org/xml Document Navigation with XPath

  2. Contents • Document Processing • Nodes and Trees • XPath: Locating Nodes • Summary • Find Out More

  3. Document Processing • The XSL Family • XPath (XML Path Language) • XSLT (Extensible Stylesheet Language Transformations) • XSL aka XSL-FO (Extensible Stylesheet Language Formatting Objects)

  4. Document Processing • XPath • Used to locate specific parts of an XML source document efficiently and effectively • XPath v1.0 W3C Recommendation

  5. Document 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

  6. Document Processing • XSL(-FO) • Used to format XML documents into fixed sized folios for publication • XSL v1.0 W3C Recommendation • Uses XSLT for document transformation

  7. Document 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

  8. Document Processing Source Tree Stylesheet Processor Formatted Output Result Tree Transform Format Style sheet Adapted from XSLT Basics slide presentation by Paul Spencer, alphaXML

  9. Trees and Nodes • XML document is viewed as a source tree containing different node types • root • element • text • attribute • namespace • processing instruction • comment

  10. Trees and Nodes • XML Appointment example <!-- radiology appointment --> <Appointment deptCode=”RADIO”> <Patient upi=”ABC-123-456”>John Smith <PhoneNo>0141 662 2673</PhoneNo> </Patient> <Clinician>Alison Young</Clinician> <Slot attendDate=”2003-08-05”> <StartTime>14:30:00</StartTime> </Slot> </Appointment>

  11. Trees and Nodes • XPath view of Appointment source tree

  12. XPath: 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()

  13. XPath: Locating Nodes • Axes • Specify node locations relative to the current (context) node = self • May traverse tree forwards or backwards

  14. XPath: Locating Nodes • Axes for forward traversal • child • attribute • descendant-or-self • descendant • following • following-sibling • namespace

  15. XPath: Locating Nodes • Axes for reverse traversal • parent • ancestor • ancestor-or-self • preceding • preceding-sibling

  16. XPath: 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

  17. XPath: Locating Nodes • Select Clinician element node • child::Appointment/child::Clinician or • Appointment/Clinician

  18. XPath: Locating Nodes • Select upi attribute node • child::Patient/attribute::upi or • Patient/@upi

  19. XPath: Locating Nodes • Select all descendant text nodes • /descendant-or-self::node()/child::text() or • //text()

  20. XPath: Locating Nodes • Select parent of StartTime element • parent::node() or ..

  21. XPath: Locating Nodes • Using wildcards • child::* or *

  22. XPath: Locating Nodes • Abbreviating location steps • child::and text() can usually be omitted child::Appointment/child::Clinician/child::text() = Appointment/Clinician • attribute::=@ Patient/@upi • self()::node = . • parent::node() = ..

  23. XPath: Locating Nodes • Abbreviating Location Paths /descendant-or-self::node()/=// /descendant-or-self::node()/child::text()=//text()

  24. In 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

  25. Find 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

More Related