38
<Discussion>

XML – Extensible Markup Language XML eXtensible – add to language. Markup – delimit info using tags. Language – a way to express info

Embed Size (px)

Citation preview

<Discussion>

XML – Extensible Markup Language

XML

• eXtensible – add to language.

• Markup – delimit info using tags.

• Language – a way to express info.

Major Roles for XML

Store Data

XML Schema

XMLDocument

XML Schema

Exchange Data

XMLDocument

Present Info

XSL Stylesheet

1

XSL Stylesheet

2

XMLDocument

Client Access to XML Data

Simplify Data Capture(eventually)

Database

Data encapsulation into data node

Insert data node

XML Includes …

XForms Model

XHTML

XPath

XSLTXSL-FO

XFormsProcessor

XSLParser

RenderingAgent

XSD

HTML

Marked up text

XML Documents

-

An XML Document …

• A text document.

• Stores data.

• Data items are delimited using tags.

• Hierarchical structure.

-

<?xml version="1.0"?><Customers>

<Customer><Id>5003</Id><CName>Jane</CName><Transaction>

<TDate>2003-01-01</TDate><Amt>-27.85</Amt>

</Transaction><Transaction>

<TDate>2003-01-07</TDate><Amt>49.50</Amt>

</Transaction></Customer>

</Customers>

Tags:• Delimit data.• Show meaning.• You make tags!

Data:• Rich data types.• Constraints.

Well Formed XML

1. All data items are between tags.

2. Closing tags start with /.

3. Tags are case sensitive.4. No spaces or symbols in tags.

(Data may contain spaces and some symbols.)

5. Tags balance.

Tags and Data

<?xml version="1.0"?><Customers>

<Customer><Id>5003</Id><CName>Jane</CName><Transaction>

<TDate>2003-01-01</TDate><Amt>-27.85</Amt>

</Transaction></Customer>

</Customers>

Well Formed?

<Cost>Homer Simpson</Cost>

<Cost>123.45<Cost>

<Cost>123.45</cost>

<Cost>123.45</Cost>

<Cost><Quantity>123.45</Cost>15</Quantity>

<Cost>123.45</Cost><Quantity>15</Quantity>

XML Document Structure

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004

Tom

Customer

IdCName

5003

Jane

Customers

Transaction

TDateAmt

1/3/03

58.85

<?xml version="1.0"?><Customers>

<Customer><Id>5003</Id><CName>Jane</CName><Transaction>

<TDate>2003-01-01</TDate><Amt>-27.85</Amt>

</Transaction><Transaction>

<TDate>2003-01-07</TDate><Amt>49.50</Amt>

</Transaction></Customer><Customer>

<Id>5004</Id><CName>Tom</CName><Transaction>

<TDate>2003-03-03</TDate><Amt>58.85</Amt>

</Transaction></Customer>

</Customers>

Hierarchy of Nodes

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004

Tom

Customer

IdCName

5003

Jane

Transaction

TDateAmt

1/3/03

58.85

Customers

/ Root Node

Document Elementor Document Node

Node or Complex Element

(Simple) Element

Key to Understanding?

Meaningful, descriptive tag names!

<z>103.95</z>

<Price>103.95</Price>

<ListPrice>103.95</ListPrice>

<SalesPrice>103.95</SalesPrice>

103.95

XML Schemas

An XML Schema …

• Defines the structure of an XML document.– Nodes.– Hierarchy.

• Defines the elements in each node.– Tag.– Data type.– Constraints.

XML Schema

XMLDocument

Valid XML Document

XML Schema

XMLDocument

Well formed.

XML document conforms to structure defined in XML schema.

XML Schema

XML Schema - Exchange Data

XMLDocument

Based on Standards

Defining an XML Schema

Identify Data Requirements

Specify Tags

Specify Structure

Agree on Definitions

Some Major XML Standards

EFT DirectDeposit

Open Financial Exchange (OFX)

EDI

XML/EDI andelectronic businessusing XML (ebXML)

eXtensible BusinessReporting Language (XBRL)

FinancialReporting

Tax Reporting

IRS e-file Standards

<?xml version="1.0"?><Customers>

<Customer><Id>5003</Id><CName>Jane</CName><Transaction>

<TDate>2003-01-01</TDate><Amt>-27.85</Amt>

</Transaction><Transaction>

<TDate>2003-01-07</TDate><Amt>49.50</Amt>

</Transaction></Customer><Customer>

<Id>5004</Id><CName>Tom</CName><Transaction>

<TDate>2003-03-03</TDate><Amt>58.85</Amt>

</Transaction></Customer>

</Customers>

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004Tom

Customer

IdCName

5003Jane

Transaction

TDateAmt

1/3/0358.85

Customers

<?xml version = "1.0"?><xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

<xsd:element name = "Customers"> <xsd:complexType> <xsd:sequence>

<xsd:element ref = "Customer" maxOccurs = "unbounded"/></xsd:sequence>

</xsd:complexType> </xsd:element>

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004Tom

Customer

IdCName

5003Jane

Transaction

TDateAmt

1/3/0358.85

Customers

<xsd:element name = "Customer"><xsd:complexType>

<xsd:sequence> <xsd:element name = "Id" type = "xsd:string"/> <xsd:element name = "CName" type = "xsd:string"/>

<xsd:element ref = "Transaction" maxOccurs = "unbounded"/></xsd:sequence>

</xsd:complexType></xsd:element>

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004Tom

Customer

IdCName

5003Jane

Transaction

TDateAmt

1/3/0358.85

Customers

<xsd:element name = "Transaction"><xsd:complexType>

<xsd:sequence> <xsd:element name = "TDate" type = "xsd:date"/>

<xsd:element name = "Amt" type = "xsd:decimal"/></xsd:sequence>

</xsd:complexType> </xsd:element>

</xsd:schema>

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004Tom

Customer

IdCName

5003Jane

Transaction

TDateAmt

1/3/0358.85

Customers

<?xml version = "1.0"?><xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"> <xsd:element name = "Customers"> <xsd:complexType> <xsd:sequence>

<xsd:element ref = "Customer" maxOccurs = "unbounded"/></xsd:sequence>

</xsd:complexType> </xsd:element> <xsd:element name = "Customer">

<xsd:complexType> <xsd:sequence>

<xsd:element name = "Id" type = "xsd:string"/> <xsd:element name = "CName" type = "xsd:string"/>

<xsd:element ref = "Transaction" maxOccurs = "unbounded"/></xsd:sequence>

</xsd:complexType></xsd:element>

<xsd:element name = "Transaction"><xsd:complexType>

<xsd:sequence> <xsd:element name = "TDate" type = "xsd:date"/>

<xsd:element name = "Amt" type = "xsd:decimal"/></xsd:sequence>

</xsd:complexType> </xsd:element></xsd:schema>

Validating XML Documents

• Use software or web tools.

– Topologi Schematron Validator.• www.topologi.com

– GotDotNet Schema Validator.• http://apps.gotdotnet.com/xmltools/xsdvalidator/

XSL Stylesheet, etc.

An XSL Stylesheet …

• Gets and filters nodes in an XML document.

• Transforms nodes.

• Formats output.

Many XSL Stylesheets

XSL Stylesheet

#1

XSL Stylesheet

#2

XMLDocument

XSL Stylesheet “Languages”

XML Path

XPath: gets nodes using paths and filtering patterns.

XSL Transformations

XSLT: transforms a document tree into a new document tree.

XSL-Formatting Objects

XSL-FO: describes how output looks. (HTML on steroids!)

+ =Parsed and Rendered

Output

XML Document

XSL Stylesheet

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="/Customers"><html>

<body><h1>Customer Information</h1><xsl:apply-templates select="Customer" />

</body></html>

</xsl:template><xsl:template match="Customer">

<b>Id: </b> <xsl:value-of select="Id" /><br /><b>Name: </b> <xsl:value-of select="CName" /><br /><xsl:apply-templates select="Transaction" /><br /><hr /><br />

</xsl:template><xsl:template match="Transaction">

<b>Date: </b> <xsl:value-of select="TDate" /><b>Amount: </b> <xsl:value-of select="Amt" /><br />

</xsl:template></xsl:stylesheet>

Transaction

TDateAmt

1/1/03

-27.95

Transaction

TDateAmt

1/7/03

49.50

Customer

IdCName

5004Tom

Customer

IdCName

5003Jane

Transaction

TDateAmt

1/3/0358.85

Customers

Alphabet Soupof Xtechs

XML Schema

XMLDocument

XForms

XForms Model

XSL Stylesheet

XHTMLMarked up text XPath

XSLTXSL-FO

XFormsProcessor

Editor &Validator

XSLParser

RenderingAgent

XSD

Languages & Formats

Software

HTML

</Discussion>