Justin Tilton instructional media + magic, inc. As presented at the JA-SIG Winter Conference: "All Java, All the Time" December 8 th 2002, Orlando, Florida.

Slides:



Advertisements
Similar presentations
XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name.
Advertisements

XML III. Learning Objectives Formatting XML Documents: Overview Using Cascading Style Sheets to format XML documents Using XSL to format XML documents.
XML: Extensible Markup Language
1 XSLT – eXtensible Stylesheet Language Transformations Modified Slides from Dr. Sagiv.
XPath Eugenia Fernandez IUPUI. XML Path Language (XPath) a data model for representing an XML document as an abstract node tree a mechanism for addressing.
1 CP3024 Lecture 9 XML revisited, XSL, XSLT, XPath, XSL Formatting Objects.
XSL Transformations (XSLT) Meghasyam Bokam April’1 st, 2002.
Jon Allen instructional media + magic, inc. As presented at the JA-SIG Winter Conference Bal Harbor, Florida, December 6, 2003 Introduction to XSLT.
XML Language Family Detailed Examples Most information contained in these slide comes from: These slides are intended.
XML Technologies and Applications Rajshekhar Sunderraman Department of Computer Science Georgia State University Atlanta, GA 30302
September 15, 2003Houssam Haitof1 XSL Transformation Houssam Haitof.
Introducing XHTML: Module B: HTML to XHTML. Goals Understand how XHTML evolved as a language for Web delivery Understand the importance of DTDs Understand.
MC 365 – Software Engineering Presented by: John Ristuccia Shawn Posts Ndi Sampson XSLT Introduction BCi.
Introduction to XPath Bun Yue Professor, CS/CIS UHCL.
SD2520 Databases using XML and JQuery
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.
Sheet 1XML Technology in E-Commerce 2001Lecture 6 XML Technology in E-Commerce Lecture 6 XPointer, XSLT.
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.
1/17 ITApplications XML Module Session 7: Introduction to XPath.
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.
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 © Netskills Quality Internet Training, University of Newcastle Introducing XML © Netskills, Quality Internet Training University.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 6 XSLT (Based on Møller and Schwartzbach,
XSLT. XSL comprises of –XSLT: Is a language for transforming XML documents into other XML documents –FO: XML vocabulary for specifying formatting XSL.
Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards.
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
XML About XML Things to be known Related Technologies XML DOC Structure Exploring XML.
CSE3201/CSE4500 Information Retrieval Systems XSLT – Part 2.
Processing of structured documents Spring 2003, Part 7 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 Chapter 10: XML What is XML What is XML Basic Components of XML Basic Components of XML XPath XPath XQuery XQuery.
ECA 228 Internet/Intranet Design I XSLT Example. ECA 228 Internet/Intranet Design I 2 CSS Limitations cannot modify content cannot insert additional text.
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.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter X IXXXXXXXXXX XXXXXX.
August Chapter 6 - XPath & XPointer Learning XML by Erik T. Ray Slides were developed by Jack Davis College of Information Science and Technology.
1 Introduction  Extensible Markup Language (XML) –Uses tags to describe the structure of a document –Simplifies the process of sharing information –Extensible.
 2002 Prentice Hall, Inc. All rights reserved. 1 Chapter 12 – XSL: Extensible Stylesheet Language Transformations (XSLT) Outline 12.1Introduction 12.2Setup.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 1COMP9321, 15s2, Week.
XSLT. XSLT stands for Extensible Stylesheet Language Transformations XSLT is used to transform XML documents into other kinds of documents. XSLT can produce.
Introduction to XML XML – Extensible Markup Language.
More XML XPATH, XSLT CS 431 – February 23, 2005 Carl Lagoze – Cornell University.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
CSE3201/CSE4500 Information Retrieval Systems XSLT – Part 2.
University of Nottingham School of Computer Science & Information Technology Introduction to XML 2. XSLT Tim Brailsford.
Martin Kruliš by Martin Kruliš (v1.1)1.
XPath --XML Path Language Motivation of XPath Data Model and Data Types Node Types Location Steps Functions XPath 2.0 Additional Functionality and its.
XSLT: How Do We Use It? Nancy Hallberg Nikki Massaro Kauffman.
XSLT I Robin Burke ECT 360. Outline History / Terminology XSLT processing XSLT syntax XPath XSLT basics Lab.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 7 Representing Web Data:
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.
Rendering XML Documents ©NIITeXtensible Markup Language/Lesson 5/Slide 1 of 46 Objectives In this session, you will learn to: * Define rendering * Identify.
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.
Justin Tilton, Chief Executive Officer instructional media + magic, inc. at the JA-SIG Conference Destin, Florida December 4, 2001 Changing the uPortal.
Unit 4 Representing Web Data: XML
XML in Web Technologies
uPortal: architecture and features
Chapter 7 Representing Web Data: XML
instructional media + magic, inc.
Introduction to XSLT Justin Tilton instructional media + magic, inc.
More XML XML schema, XPATH, XSLT
Presentation transcript:

Justin Tilton instructional media + magic, inc. As presented at the JA-SIG Winter Conference: "All Java, All the Time" December 8 th 2002, Orlando, Florida Introduction to XSLT

XSLT, XPath and uPortal The Abstract… Looking for a methodology to quickly and effectively create Transformations? Interested in the basics of XSLT and Xpath, and a good way to get started? If so, this workshop is for you! We will be discussing the fundamental concepts of XSLT and Xpath, and the methodologies that have emerged from months of developing stylesheet transformations for the uPortal 2.0 project. We will discuss the design aspects related to converting structured information in XML into device-dependent markup languages such as HTML, and WML, and the guidelines and best practices evolving from this experience. No prior XSLT experience is necessary.

XSLT, XPath and uPortal Overview Introduction uPortal Basic XPath Basic XSLT Markup: XHTML Cascading Style Sheets Tools The Creation Process Hands-on

Introduction

XSLT, XPath and uPortal Background Who: W3C What: XPath and XSLT Specs. When: 11/16/1999 Why:A need arose for a specification to define the syntax and semantics for transforming XML documents.

XSLT, XPath and uPortal References “The” definitive reference… Michael Kay Wrox Press Inc ISBN:

XSLT, XPath and uPortal References Great practical reference… Jeni Tennison Hungry Minds ISBN:

XSLT, XPath and uPortal References Practical use of transformations in Java code Eric Burke O'Reilly & Assoc. ISBN:

JA-SIG’s uPortal

XSLT, XPath and uPortal What’s new in 2.x? Abstraction of layout Structure/theme transformations Standard channel events Standard CSS classes More flexible publish/subscribe User profile management Groups and Permissions updates

XSLT, XPath and uPortal Basic Architecture Framework Structure XSLT Theme XSLT Skins - CSS

XSLT, XPath and uPortal Basic Architecture Permissions authentication User preferences Channel registry Other uPortal Data iPlanet LDAP Oracle db2 mySQL

XSLT, XPath and uPortal Channel Elementary unit of presentation, defined by the IChannel interface IChannel User Interaction External Information Channel Content (Presentation)

XSLT, XPath and uPortal IChannel content must Be well-formed XML such as XHTML, RSS, SVG, SMIL, or a SOAP message (HTML is not well formed XML) Rendered by an XSL transformation using an XSL stylesheet

XSLT, XPath and uPortal Framework Organization uPortal Framework User InteractionPresentation Channel

XSLT, XPath and uPortal User Layout User Layout is an abstract structure defining the overall content available to the user userLayout is a tree structure consisting of “folders” and “channels”, the later always being the leaf nodes

XSLT, XPath and uPortal User Layout

XSLT, XPath and uPortal Structure Transformation Channel ColumnChannel Tab Channel Tab Channel Tab User Layout Column

XSLT, XPath and uPortal Theme Transformation Channel Dictionary.com Column Channel Bookmarks Channel Cartoon Column Tab Jim Smith Channel Tab Financial Aid Channel Tab Library User Layout

XSLT, XPath and uPortal Compiling the Presentation Structure transformation Theme transformation userLayout structuredLayout HTML, WML VoiceML... XSLT setRuntimeData() renderXML() Channels

XSLT, XPath and uPortal XML Stylesheet XHTML: Web Browser WML: Cell Phone HTML: PDA XSLT Processor Content Transformation

XSLT, XPath and uPortal Flexible Layouts Structures Tab / column Tree / column Themes Multi-column Multi-row Skins Matrix, Java

XSLT, XPath and uPortal Multiple Target Devices

XSLT, XPath and uPortal Tab / Column Layout

XSLT, XPath and uPortal Tree / Column Layout

XSLT, XPath and uPortal Skins

XSLT, XPath and uPortal Skin: im+m

XSLT, XPath and uPortal Skin: VSAC

XSLT, XPath and uPortal Skin: matrix

XSLT, XPath and uPortal User Preferences Swappable layout and preference management modules Profile management module Tab-column specific prefs. module Skin selection

XSLT, XPath and uPortal User Preferences

XSLT, XPath and uPortal Publish/Subscribe Channel publishing document Channel parameters Default values Modification permissions Descriptions Publish/Subscribe steps Step sequence Instructions, help A complex channel with multiple XSL views

XSLT, XPath and uPortal Channel Types

XSLT, XPath and uPortal Channel Settings

XSLT, XPath and uPortal Channel Controls

XSLT, XPath and uPortal Channel Rewiew

Basic XPath

XSLT, XPath and uPortal Nodes and Node Trees When an application wants to operate on an XML document it builds an internal model of what the document looks like. This model is known as a document object model or DOM. In XPath and XSLT, it's called a node tree.

XSLT, XPath and uPortal Types of Nodes Root nodes The top of the node tree Element nodes XML elements Attribute nodes XML attributes Text nodes Textual content in XML elements Comment nodes XML comments Processing instruction nodes XML processing instructions Namespace nodes The in-scope namespaces on an element R EEEE AT

XSLT, XPath and uPortal Node Tree Example content document para warning note content

XSLT, XPath and uPortal XPath Definition XPath is a language for addressing parts of an XML document, designed to be used by XSLT. Example XPath: child::para[attribute::type='warning'][position()=2] In English: select the second para child of the context node that has a type attribute with a value of warning.

XSLT, XPath and uPortal Context node Axis Dissecting the Example child::para[attribute::type='warning'][position()=2] Axis: child::para Filter:[attribute::type='warning'] Filter:[position()=2]

XSLT, XPath and uPortal Context node Axis Dissecting the Example child::para[attribute::type='warning'][position()=2] Axis: child::para Filter:[attribute::type='warning'] Filter:[position()=2] Filtered

XSLT, XPath and uPortal Context node Axis Dissecting the Example child::para[attribute::type='warning'][position()=2] Axis: child::para Filter:[attribute::type='warning'] Filter:[position()=2] Filtered

XSLT, XPath and uPortal Selected Dissecting the Example child::para[attribute::type='warning'][position()=2] Axis: child::para Filter:[attribute::type='warning'] Filter:[position()=2] Context node Axis Filtered

XSLT, XPath and uPortal Types of XPaths Expressions: Return a value, which might be a node set that is processed or a string that is output. Patterns: Either match a particular node or don't match that node.

XSLT, XPath and uPortal XPath Expressions Select Nodes Conditional Calculation C ZZ C 1423

XSLT, XPath and uPortal Node Set Expressions The most common way that XSLT uses XPaths is to select node sets. These XPaths usually occur within a select attribute, for example on xsl:for–each or xsl:apply–templates, and are known as location paths.

XSLT, XPath and uPortal Location Paths The purpose of location paths is to select node sets from a node tree. Location paths can be absolute or relative Absolute location paths start from a known location such as the root node Relative location paths start from the context node. note: same as “child::N” R NNXY R NC ontextYX NZ

XSLT, XPath and uPortal Steps A location path is made up of a number of steps. Each step takes you from a node to a node set. Each step is separated from the one before it with a “/”.

XSLT, XPath and uPortal Steps Every step is made up of an axis and a node test. The axis specifies the direction that the step is taken in The node test specifies the kinds of nodes that should be collected in that direction. Within a step, the axis and the node test are separated by a double colon “::”. “ child :: para ”

XSLT, XPath and uPortal Some Shorthand Notation If no axis is specified in a step, the default axis is the child axis. Longhand select=“child::para/child::sentence” Shorthand select=“para/sentence” Another important axis is the attribute axis, which takes you from the context node to the attributes of that node. Longhand select=“attribute::type” Shorthand Another essential axis is the parent axis. This takes you from the context node to the parent of that node. Longhand select=“parent::node()/child::xyz” Shorthand select=“../xyz”

XSLT, XPath and uPortal Axes ancestor :: node() Takes you up the tree to the ancestors of the context node in reverse document order

XSLT, XPath and uPortal Axes ancestor-or-self :: node() Takes you up the tree to the ancestors of the context node in reverse document order starting with the context node

XSLT, XPath and uPortal Axes child :: node() Takes you to the children of the context node in document order. This is the default axis

XSLT, XPath and uPortal Axes descendant :: node() Takes you to the descendants of the context node. The resulting nodes are in document order

XSLT, XPath and uPortal Axes descendant-or-self :: node() Takes you to the descendants of the context node, starting with the context node, in document order

XSLT, XPath and uPortal Axes following :: node() Takes you to the nodes that occur after the context node in document order, but that are not the context node’s descendants

XSLT, XPath and uPortal Axes following-sibling :: node() Takes you to the siblings of the context node that occur after the context node in document order

XSLT, XPath and uPortal Axes parent :: node() Selects a single node – the parent of the context node. 1 1

XSLT, XPath and uPortal Axes preceding :: node() Takes you to the nodes that occur before the context node in reverse document order, excluding the context node’s ancestors

XSLT, XPath and uPortal Axes preceding-sibling :: node() Takes you to the siblings (children of the same parent) of the context node that occur before it, in reverse document order

XSLT, XPath and uPortal Axes self :: node() Takes you to the context node itself. 1 1

XSLT, XPath and uPortal Predicates (filters) Predicates are placed in square brackets either: at the end of a step select=“para[position()=3]/sentence” or at the end of a location path select=“para/sentence[position()=3]” Predicates act as filters on node sets. When predicate expressions test false, the node is filtered out.

XSLT, XPath and uPortal Predicates (filters) You can have any number of predicates following each other. The context node list for each predicate contains the nodes that are still in the node set after it's been filtered by the previous predicates. Predicates can be used at any point in a location path, but they only apply to the immediately preceding step.

XSLT, XPath and uPortal Expressions - Union You can combine node sets by creating a union using the “|” operator. If there are any nodes that occur in both node sets, the union only holds one copy of them. You can use predicates on the result of a union, just as you can on any node set.

XSLT, XPath and uPortal Expressions - Operators Logical Operators and, or and not() Comparative Operators =, !=,, >= Remember to escape: “<“ to < Mathematical Operators +, -, *, div, mod

XSLT, XPath and uPortal XPath Examples select=“presidents/president/[position()=3]/name” select=“//president[count(vicePresident)=0]/name” < 1800]/name” select=“descendant::president/ [count(vicePresident)>1]/name” select=“//president/name[child::first=‘John’]” > 1800) and < 1850)/name”

Basic XSLT

XSLT, XPath and uPortal Background XSLT is part of a larger initiative within the World Wide Web Consortium (W3C) to define a way of presenting XML documents. This initiative is known as XSL (Extensible Stylesheet Language). XSLT is an XML vocabulary that's used to define a transformation between an XML document and a result document, which might be in XML, in HTML, or a text document.

XSLT, XPath and uPortal What is an XSLT Stylesheet? The XSLT processor uses a stylesheet to transform an XML document. The stylesheet contains instructions for generating a new document based on information in the source document. This can involve adding, removing, or rearranging nodes, as well as presenting the nodes in a new way.

XSLT, XPath and uPortal The XSL Processing sequence source document XSL stylesheet XML parser apply templates apply templates write result to output write result to output Result file or stream Result file or stream result tree source tree rules base

XSLT, XPath and uPortal Differentiating Stylesheets XSLT stylesheets do not perform the same function as Cascading Style Sheets (CSS) CSS is used to apply style elements to markup languages to affect formatting in a single pass, top down, fashion. XSLT produces a separate result tree and can iterate and perform conditional logic. XSLT and CSS are most powerful when used together. More later…

XSLT, XPath and uPortal Example of a Stylesheet When you work with a stylesheet, three documents are involved: Source document in XML Desired output: the result document, which can be HTML, XML, or text XSLT stylesheet, which is also an XML document

XSLT, XPath and uPortal “Hello World!” XML Document: Hello, World! Desired Output: Greeting Hello, World! XSLT Stylesheet: Greeting root greeting Hello World!

XSLT, XPath and uPortal Dissecting the XSLT XSLT stylesheets are XML Documents Standard XSLT heading/Namespace The template rule to be triggered when a particular part of the source document is being processed. “/” is XPath for “root node”

XSLT, XPath and uPortal Dissecting the XSLT Once the rule is triggered the body of the template defines what output to generate. Greeting Most of the template is HTML except the value-of element which is an XSL instruction. The XPath in the select statement is asking for the contents of the child of the context node with an element name of greeting. root greeting Hello World!

XSLT, XPath and uPortal Dissecting the XSLT All that’s left to do is close (finish) the template and the stylesheet.

XSLT, XPath and uPortal Some XSL Top Level Elements Declares a decimal format. Imports another stylesheet into this stylesheet. provides a way to work with documents that contain an implicit cross-reference structure This instruction specifies how you want the result tree to be output

XSLT, XPath and uPortal Some XSL Top Level Elements Declares a parameter for a stylesheet or template, and specifies a default value for the parameter Specifies a template rule. Declares a variable and binds a value to that variable. The difference between the xsl:param and xsl:variable instructions is that xsl:param defines a default value while xsl:variable defines a fixed value. If used as a top level element the scope is global otherwise the scope is local to a specific template

XSLT, XPath and uPortal What Is a Template? A template defines what the XSLT processor should do when it processes a particular node in the XML source document. The XSLT processor populates the result document by instantiating a sequence of templates. Instantiation of a template means that the XSLT processor Copies any literal data from the template to the result document Executes the XSLT instructions in the template

XSLT, XPath and uPortal Contents of a Template To define a template, you specify the xsl:template instruction. In the xsl:template tag, the value of the match attribute is an XPath pattern. This pattern matches (identifies) nodes in the source XML document. The value of the match attribute is the template rule.

XSLT, XPath and uPortal The Template Body The template body defines actions you want the XSLT processor to perform each time it instantiates the template. It contains XSLT instructions you want the XSLT processor to follow Elements that specify literal output you want the XSLT processor to insert in the result document. For example:

XSLT, XPath and uPortal Determining Templates to Instantiate When the XSLT processor applies a stylesheet to an XML document, it begins processing with the root node of the XML source document Every stylesheet includes default templates Whether or not you explicitly define a template rule that matches the root node, the XSLT processor always instantiates a template that matches the root node.

XSLT, XPath and uPortal The Example Handout

XSLT, XPath and uPortal Dissected XSLT Stylesheet

XSLT, XPath and uPortal Result

XSLT, XPath and uPortal Dissecting a sample In the sample stylesheet, the template rule in the first template matches the root node: The XSLT processor instantiates this template to start generating the result document. It copies the first few lines from the template to the result document.

XSLT, XPath and uPortal Dissecting a sample Then the XSLT processor reaches the following XSLT instruction: When the XSLT processor reaches the select attribute, it creates a list of all source nodes that match the specified pattern. In this example, the list contains book elements. The processor then processes each node in the list in turn by instantiating its matching template.

XSLT, XPath and uPortal Dissecting a sample First, the XSLT processor searches for a template that matches the first book element. The template rule in the second template matches the book element: After instantiating this template for the first book element, the XSLT processor searches for a template that matches the second book element…

XSLT, XPath and uPortal Dissecting a sample The XSLT processor instantiates the book template again, and then repeats the process for the third book element. After three instantiations of the book template, the XSLT processor returns to the first template (the template that matches the root node) and continues with the line after the xsl:apply-templates instruction.

XSLT, XPath and uPortal Built-in Templates When the XSLT processor cannot find a template that matches a selected node, it uses built-in templates. Every stylesheet includes built-in templates whether or not you explicitly define them.

XSLT, XPath and uPortal Built-in Templates The following template matches the root node and element nodes and selects all attributes and child nodes for further processing: The following template matches text and attribute nodes. This template copies the value of the text or attribute node to the result document:

XSLT, XPath and uPortal Major XSL Instructions xsl:apply-imports xsl:apply-templates xsl:attribute xsl:attribute-set xsl:call-template xsl:choose xsl:comment xsl:copy xsl:copy-of xsl:decimal-format xsl:element xsl:fallback xsl:for-each xsl:if xsl:import xsl:include xsl:key xsl:message xsl:namespace-alias xsl:number xsl:otherwise xsl:output xsl:param xsl:preserve-space xsl:processing-instruction xsl:sort xsl:strip-space xsl:stylesheet xsl:template xsl:text xsl:transform xsl:value-of xsl:variable xsl:when xsl:with-param

XHTML

XSLT, XPath and uPortal Why XHTML? XSLT Stylesheets are XML documents If you plan to output HTML, it will reside in the template bodies of the XSLT Stylesheet, and the markup will be output as literal output. When the XSLT Stylesheet contains Markup, it has to be well formed

XSLT, XPath and uPortal Differences with HTML 4 Due to the fact that XHTML is an XML application, certain practices that were perfectly legal in HTML 4 must be changed. Documents must be well-formed Well-formedness is a new concept introduced by [XML]. Essentially this means that all elements must either have closing tags or be written in a special form (as described below), and that all the elements must nest. CORRECT: nested elements. here is an emphasized paragraph. INCORRECT: overlapping elements here is an emphasized paragraph.

XSLT, XPath and uPortal Differences with HTML 4 Element and attribute names must be in lower case XHTML documents must use lower case for all HTML element and attribute names. This difference is necessary because XML is case-sensitive e.g. and are different tags.

XSLT, XPath and uPortal Differences with HTML 4 In HTML 4 certain elements were permitted to omit the end tag; with the elements that followed implying closure. This omission is not permitted in XML-based XHTML. All elements must have an end tag. CORRECT: terminated elements here is a paragraph. here is another paragraph. INCORRECT: unterminated elements here is a paragraph. here is another paragraph.

XSLT, XPath and uPortal Differences with HTML 4 All attribute values must be quoted, even those which appear to be numeric. CORRECT: quoted attribute values INCORRECT: unquoted attribute values

XSLT, XPath and uPortal Differences with HTML 4 XML does not support attribute minimization. Attribute-value pairs must be written in full. Attribute names such as nowrap and checked cannot occur in elements without their value being specified. CORRECT: unminimized attributes INCORRECT: minimized attributes

XSLT, XPath and uPortal Differences with HTML 4 Empty elements must either have an end tag or the start tag must end with />. For instance, or. CORRECT: terminated empty tags INCORRECT: unterminated empty tags

Cascading Style Sheets

XSLT, XPath and uPortal CSS uPortal and Skins uPortal uses Cascading Style Sheets to “Skin” the portal and content. These CSS files are optimized for a particular structure. For consistency channel developers should become familiar with the CSS classes that are defined for a particular structure and apply them to the markup language in their XSLT transformations.

XSLT, XPath and uPortal The CSS Classes There is a sample “developer” channel in uPortal that describes and gives examples of the CSS classes for the Tab/Column Theme.

XSLT, XPath and uPortal The CSS Channel

The Tools

XSLT, XPath and uPortal The Applications… These are the applications I am familiar with -- this is not an endorsement -- and no testing was done on animals… XML/XSLT Document Development IDE: Excelon Stylus Studio XML Spy Cooktop (open source) Komodo (commercial – runs on LINUX) Emacs (minor mode XSLT-process) HTML Markup IDE: Macromedia Dreamweaver MX (XHTML), Adobe GoLive HTML to XHTML Conversion/Cleanup HTML Tidy (open source)

The Creation Process

XSLT, XPath and uPortal Creating an XSLT Stylesheet Step One – get or develop one of the following: A representative XML Document A DTD (a whole different seminar) A Schema (a whole different seminar) Step two – Analyze the data Think about the best way to present and interact with it. The data is your friend. Step three – Develop sample markup Design mocks for each markup language & device that you plan to support. Don’t try to paint the canvas without a sketch. Step four – Convert the markup to XML The stylesheet will only eat tasty markup. Poorly formed markup will be regurgitated. Step five – copy markup into XSLT editor Match on a root element and start cooking XSLT.

Hands - on

XSLT, XPath and uPortal Hands – on Convert RSS (Rich Site Summary) “Syndicated Content” XML Documents into HTML using an XSLT Stylesheet.