Processing XML Processing XML using XSLT Processing XML documents with Java (DOM) Next week -- Processing XML documents with Java (SAX)

Slides:



Advertisements
Similar presentations
Transforming XML XMLNamespaces, XSLT. XML Namespaces Sometimes it is necessary to mix XML elements –Different types of content –Use of markup to convey.
Advertisements

Advanced XSLT. Branching in XSLT XSLT is functional programming –The program evaluates a function –The function transforms one structure into another.
Advanced XSLT II. Iteration in XSLT we sometimes wish to apply the same transform to a set of nodes we iterate through a node set the node set is defined.
Bottom-up Evaluation of XPath Queries Stephanie H. Li Zhiping Zou.
Internet Technologies1 1 Lecture 4: Programming with XSLT.
1 XSLT – eXtensible Stylesheet Language Transformations Modified Slides from Dr. Sagiv.
+ XSL eXtensible Stylesheet Language. + 2 XML Lecture Adapted from the work of Prof Mark Baker ACET, University of Reading.
XSL Transformations (XSLT) Meghasyam Bokam April’1 st, 2002.
XSL Concepts Lecture 7. XML Display Options What can XSL Transformations do? generation of constant text suppression of content moving text (e.g., exchanging.
XSL Transformations Lecture 8, 07/08/02. Templates The whole element is a template The match pattern determines where this template applies Result element(s)
A technical introduction Felix Eickhoff XML Basics.
Internet Technologies XSLT Processing XML using XSLT Using XPath Escaping to Java.
Just Java XML Introductory comments Processing XML using XSLT Using XPath Escaping to Java A PowerWarning Application using XML.
Cornell CS 502 More XML XML schema, XPATH, XSLT CS 502 – Carl Lagoze – Cornell University.
CS 4408 Lecture 9. XSLT instruction elements We have seen that a template can contain non-XSLT text, canned text that it inserts into the result tree.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
Object Oriented Programming III1 XSLT Processing XML using XSLT Using XPath.
September 15, 2003Houssam Haitof1 XSL Transformation Houssam Haitof.
Internet Technologies1 XSLT Processing XML using XSLT Using XPath.
17 Apr 2002 XML Stylesheets Andy Clark. What Is It? Extensible Stylesheet Language (XSL) Language for document transformation – Transformation (XSLT)
MC 365 – Software Engineering Presented by: John Ristuccia Shawn Posts Ndi Sampson XSLT Introduction BCi.
SD2520 Databases using XML and JQuery
XSLT XSLT: eXtensible Stylesheet Language for Transformations - a language for transforming XML documents into any text- based format (e.g. HTML, plain.
ECA 228 Internet/Intranet Design I Intro to XSL. ECA 228 Internet/Intranet Design I XSL basics W3C standards for stylesheets – CSS – XSL: Extensible Markup.
10/06/041 XSLT: crash course or Programming Language Design Principle XSLT-intro.ppt 10, Jun, 2004.
XSLT Brent P. Christie Major USMC. XSLT Overview  What is XSLT? –XSL is the Extensible Style Language. –It has two parts: the transformation language.
CSE3201/CSE4500 XPath. 2 XPath A locator for elements or attributes in an XML document. XPath expression gives direction.
XML for E-commerce III Helena Ahonen-Myka. In this part... n Transforming XML n Traversing XML n Web publishing frameworks.
XSLT for Data Manipulation By: April Fleming. What We Will Cover The What, Why, When, and How of XSLT What tools you will need to get started A sample.
Comparing XSLT and XQuery Michael Kay XTech 2005.
CSE3201/CSE4500 Information Retrieval Systems
XP New Perspectives on XML Tutorial 6 1 TUTORIAL 6 XSLT Tutorial – Carey ISBN
XSLT and XPath, by Dr. Khalil1 XSL, XSLT and XPath Dr. Awad Khalil Computer Science Department AUC.
Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards.
XP 1 CREATING AN XML DOCUMENT. XP 2 INTRODUCING XML XML stands for Extensible Markup Language. A markup language specifies the structure and content of.
WORKING WITH XSLT AND XPATH
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 6 XSLT (Based on Møller and Schwartzbach,
Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards.
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
XPath. Why XPath? Common syntax, semantics for [XSLT] [XPointer][XSLT] [XPointer] Used to address parts of an XML document Provides basic facilities for.
1 XSLT An Introduction. 2 XSLT XSLT (extensible Stylesheet Language:Transformations) is a language primarily designed for transforming the structure of.
ECA 228 Internet/Intranet Design I XSLT Example. ECA 228 Internet/Intranet Design I 2 CSS Limitations cannot modify content cannot insert additional text.
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
CITA 330 Section 6 XSLT. Transforming XML Documents to XHTML Documents XSLT is an XML dialect which is declared under namespace "
XSLT part of XSL (Extensible Stylesheet Language) –includes also XPath and XSL Formatting Objects used to transform an XML document into: –another XML.
XSLT Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Transforming Documents „a how-to of transforming xml documents“ Lecture on Walter Kriha.
Lecture 11 XSL Transformations (part 1: Introduction)
IS432: Semi-Structured Data Dr. Azeddine Chikh. 6. XML Path (XPath)
XPath Aug ’10 – Dec ‘10. XPath   XML Path Language   Technology that allows to select a part or parts of an XML document to process   XPath was.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 1COMP9321, 15s2, Week.
XPath. XPath, the XML Path Language, is a query language for selecting nodes from an XML document. The XPath language is based on a tree representation.
More XML XPATH, XSLT CS 431 – February 23, 2005 Carl Lagoze – Cornell University.
 XSL – Extensible Style Sheet Language  XSLT – XSL Transformations › Used to transform XML documents to other formats,like HTML or other XML documents.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
XPath --XML Path Language Motivation of XPath Data Model and Data Types Node Types Location Steps Functions XPath 2.0 Additional Functionality and its.
C Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Introduction to XML Standards.
Querying XML, Part II Zachary G. Ives University of Pennsylvania CIS 455 / 555 – Internet and Web Systems February 5, 2008.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 7 Representing Web Data:
5 Copyright © 2004, Oracle. All rights reserved. Navigating XML Documents by Using XPath.
XML Schema – XSLT Week 8 Web site:
1 XSL Transformations (XSLT). 2 XSLT XSLT is a language for transforming XML documents into XHTML documents or to other XML documents. XSLT uses XPath.
XML Notes taken from w3schools. What is XML? XML stands for EXtensible Markup Language. XML was designed to store and transport data. XML was designed.
CH 15 XSL Transformations 1. Objective What is XSL? Overview of XSL transformations Understanding XSL templates Computing the value of a node with xsl:value-of.
1 XSLT XSLT (extensible stylesheet language – transforms ) is another language to process XML documents. Originally intended as a presentation language:
Unit 4 Representing Web Data: XML
Seminar on Service Oriented Architecture
Chapter 7 Representing Web Data: XML
XML WITH CSS.
More XML XML schema, XPATH, XSLT
Presentation transcript:

Processing XML Processing XML using XSLT Processing XML documents with Java (DOM) Next week -- Processing XML documents with Java (SAX)

Processing XML using XSLT To use James Clark’s xt program visit his site at and click on XML. The following programs were tested with the command line C:>xt somefile.xml somefile.xsl resultfile.html The xt classes (and xslt processing) may also be accessed via a servlet.

The Catcher in the Rye J. D. Salinger Little, Brown and Company Input

<xsl:stylesheet xmlns:xsl=" version="1.0"> Processing

The Catcher in the Rye J. D. Salinger Little, Brown and Company Output

The Catcher in the Rye J. D. Salinger Little, Brown and Company Input

<xsl:stylesheet xmlns:xsl=" version="1.0"> The default rules matches the root, library and block elements.

The Catcher in the Rye J. D. Salinger Little, Brown and Company The output is the same.

The Catcher in the Rye J. D. Salinger Little, Brown and Company Cliff Notes on The Catcher in the Rye Two books in the input

<xsl:stylesheet xmlns:xsl=" version="1.0"> What’s the output?

The Catcher in the Rye J. D. Salinger Little, Brown and Company Cliff Notes on The Catcher in the Rye Illegal HTML

The Catcher in the Rye J. D. Salinger Little, Brown and Company Input

<xsl:stylesheet xmlns:xsl=" version="1.0"> <!-- --> We are not matching on publisher.

The Catcher in the Rye J. D. Salinger Little, Brown and Company We get the default rule matching the publisher and then printing its child.

The Catcher in the Rye J. D. Salinger Little, Brown and Company Input

<xsl:stylesheet xmlns:xsl=" version="1.0"> We can skip the publisher by matching and stopping the recursion.

The Catcher in the Rye J. D. Salinger

The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company A shelf has many books.

<xsl:stylesheet xmlns:xsl=" version="1.0"> Will this do the job?

The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company This is not what we want.

The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company Same input.

<xsl:stylesheet xmlns:xsl=" version="1.0"> Found a shelf Checks for a shelf and quits.

Found a shelf Output

The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company The Catcher in the Rye J. D. Salinger Little, Brown and Company Same input.

<xsl:stylesheet xmlns:xsl=" version="1.0"> These are a few of my favorite books Produce a table of books.

These are a few of my favorite books 1 The Catcher in the Rye J. D. Salinger Little, Brown and Company 2 The XSLT Programmer's Reference Michael Kay Wrox Press 3 Computer Organization and Design Patterson and Henessey Morgan Kaufmann

XPATH Non-xml language used to identify particular parts of an xml document Used by XSLT for matching and selecting particular elements to be copied into the result tree. Used by Xpointer to identify a particular point in or part of an xml document that an Xlink links to. Slides adapted from “XML in a Nutshell” by Harold

XPATH First, we’ll look at three commonly used XSLT instructions: xsl:value-of xsl:template xsl:apply-templates

XPATH The xsl:value-of element computes the string value of an Xpath expression and inserts it into the result tree. XPath allows us to select nodes in the tree and different node types produce different values.

XPATH element => the text content of the element after all tags are stripped text => the text of the node attribute => the value of the attribute root => the value of the root processing-instruction => the processing instruction data (, and the target are not included comment => the text of the comment (no comment symbols) namespace => the namespace URI node set => the value of the first node in the set

XPATH The xsl:template top-level element is the key to all of xslt. The match attribute contains a pattern (location path) against which nodes are compared as they’re processed. If the pattern matches a node, then the contents are instantiated

XPATH Find and apply the highest priority template that matches the node set expression. If the select attribute is not present then all children of the context node are processed.

The Tree Structure of an XML Document Alan Turing computer scientist mathematician cryptographer

Richard M Feynman physicist Playing the bongoes

/ person born = “1914” died = “1952” id=“p342” person name first_name Alan <!– Did the word “computer scientist” exist in Turing’s day?”-- > profession

The root Element Nodes Text Nodes Attribute Nodes Comment Nodes Processing Instructions Namespace Nodes Nodes seen by XPath Constructs not seen by XPath CDATA sections Entity references Document Type Declarations

Location Paths The root <xsl:stylesheet xmlns:xsl=" version="1.0" > matched the root matched the root

Location Paths Child element location paths (relative to context node) <xsl:stylesheet xmlns:xsl=" version="1.0" > computer scientist

Location Paths Attribute location paths (relative to context node) <xsl:stylesheet xmlns:xsl=" version="1.0" > 1912

Location Paths Attribute location paths (relative to context node) <xsl:stylesheet xmlns:xsl=" version="1.0" >

Location Paths Comment Location Step (comments don’t have names) <xsl:stylesheet xmlns:xsl=" version="1.0" > Did the word "computer scientist" exist in Turing's day?

Location Paths Comment Location Step <xsl:stylesheet xmlns:xsl=" version="1.0" > comment deleted Document content with comments replaced as shown. Default – no comments output

Location Paths Text Location Step (Text nodes don’t have names) <xsl:stylesheet xmlns:xsl=" version="1.0" > computer scientist

Location Paths Processing Instruction Location Step <xsl:stylesheet xmlns:xsl=" version="1.0" > type="text/xsl" href = "pi.xsl"

Location Paths Wild cards There are three wild cards: *, The * matches any element node. It will not match attributes, text nodes, comments or processing instructions nodes.

Location Paths Matching with * <xsl:stylesheet xmlns:xsl=" version="1.0" > Matches all elements and requests calls on sub-elements only. Nothing is displayed. The text nodes are never reached.

Location Paths Matching with node() The node() wild card matches all nodes: element nodes, text nodes, attribute nodes, processing instruction nodes, namespace nodes and comment nodes. Not implemented in XT

Location Paths Matching wild card matches all attribute nodes. XT does not like it in an but likes it in an

Location Paths Matching <xsl:stylesheet xmlns:xsl=" version="1.0" > p p4567

Location Paths Multiple matches with | Matches all the elements. Skips the text nodes unless they describe a profession or hobby.

Location Paths Selecting from all descendants with // // selects from all descendants of the context node as well as the context node itself. At the beginning of an Xpath expression, it selects from all descendants of the root node.

Location Paths Selecting from all descendants with // TuringFeynman

Location Paths Selecting from all descendants with // Alan

Location Paths Selecting from all descendants with // AlanRichard

Location Paths Selecting from all descendants with // Richard

Predicates In general, an Xpath expression may refer to more than one node. Predicates allow us to reduce the number of nodes we are interested in. Each step in a location path may have a predicate that selects from the node list that is current at that step in the expression. The boolean expression in the predicate is tested against each node in the context node list. If the expression is false then that node is deleted from the list.

Predicates Richard M Feynman

Predicates Richard M Feynman physicist Playing the bongoes

Predicates Alan Turing computer scientist mathematician cryptographer

Predicates Richard M Feynman physicist Playing the bongoes

Predicates <xsl:apply-templates select = < 1950]/ name[first_name='Alan']" /> Alan Turing

General XPath Expressions Xpath expressions that are not node sets can’t be used in the match attribute of an xsl:template element. They can be used for the values for the select attribute of xsl:value-of elements and in location path predicates.

General XPath Expressions

General XPath Expressions Xpath Functions Person Person 1 Person 2

General XPath Expressions Xpath Functions Mr. T. Mr. T. Alan Turing Node set converted to string

Escaping to Java Extension functions provide a mechanism for extending the capabilities of XSLT by escaping into another language Such as Java or JavaScript. If there is no namespace prefix on the function then it must be a core function built into XSLT. Otherwise, it’s an extension function.

General XPath Expressions Extended Xpath Functions <xsl:template name = "show-date" xmlns:Date = "

Escaping to Java Mon Mar 19 10:46:17 EST 2001

Escaping to Java // A simple bean saved under Www/beans/MyDate.java // The classpath c:\Jigsaw\Jigsaw\Jigsaw\Www\beans import java.util.*; public class MyDate { Date d; public MyDate() { d = new Date(); } public Date getDate() { return d; }

public String toString() { return "The date is " + d.toString(); } public static void main(String a[]) { MyDate x = new MyDate(); System.out.println(x); }

Escaping to Java <xsl:template name = "show-date" xmlns:Date = " The date is Mon Mar 19 11:17:24 EST 2001