112
XML Overview Andy Scholand [email protected] 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak)

Andy Scholand - Georgia Institute of Technology...Andy Scholand [email protected] 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

XML Overview

Andy [email protected]/29/00

For Georgia Tech courses: ME 6754 et al.11/13/00 - minor updates (R. Peak)

Page 2: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

2

Motivation - Why XML?

❚ Industry Focus (Resume Fodder!)❚ HTML is broken

Page 3: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

3

Microsoft Goals for XMLIncubate/Integrate/Innovate

❚ Make XML mainstream❚ Deeply integrate XML with the platform❚ Enable applications❚ Create opportunity❚ Evolve in steps

“XML is a breakthroughtechnology”

Bill Gates,Oct 97, Seybold

Page 4: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

4

Motivation

Page 5: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

5

HTML Evolution

❚ Started with very few tags …❚ Language evolved, as more tags were

added❙ forms❙ tables❙ fonts❙ frames

Page 6: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

6

HTML Problems

❚ Desire for personalized tags

❚ Want to put data into HTML form❙ mathematics, database entries, literary text,

poems, purchase orders ….

❚ HTML just isn’t designed for that!

Page 7: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

7

Goals for XML

❚ Better search results❚ Presenting various views of same data❚ Integration of data from different sources❚ Easy use over the Internet❚ Easy development of applications that

process documents❚ Documents readable by humans❚ Documents easy to create❚ Interchange of data

Page 8: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

8

XML Background

❚ Where does XML come from?❚ What is it (in general)❚ Who specifies it?

Page 9: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

9

Idea: Back to the Basics

❚ HTML was defined using SGML❙ Standard Generalized Markup Language❙ A meta-language for defining languages.

❚ Complex, sophisticated, powerful

❚ Idea: Use SGML

Page 10: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

10

Problems with SGML

❚ Too complicated a language

❚ Rules are too strict

❚ Not good in a distributed environment

❚ Can’t mix different data together

Page 11: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

11

Idea (2): “Webified” SGML

❚ New eXtensible Markup Language: XML

❚ Can use XML to define new languages

❚ Distributes easily on the Web

❚ Can mix different types of data together

Page 12: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

12

Basic XML Rules

❚ Tags like in HTML, but ...

❚ Technical details❙ Always need end tags❙ Special empty-element tags❙ Always quote attribute values

Page 13: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

13

Just what is XML?

❚ It's a markup language used forannotating text

❚ It is concerned with logical structure❙ to identify sections, titles, section headers,

chapters, paragraphs,…

❚ It is not concerned with appearance❙ you say 'this is a subtitle'

not 'this is in bold, 14pt, centered'❙ you say 'this is an example'

not 'this is in verbatim, indented by 5pts,

Page 14: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

14

Like this example …..<?xml version="1.0" encoding="iso-8859-1"?><html xmlns="http://www.w3.org/TR/xhtml1" ><head> <title> Title of text XHTML Document </title></head><body><div class="myDiv"> <h1> Heading of Page </h1> ….. <p>And here is another paragraph, this one containing an <img src="image.gif" alt="waste of time" /> inline image, and a <br /> line break. </p></div></body></html>

Page 15: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

15

Who Specifies XML?

❚ eXtensible Markup Language❚ A text-based, data description meta

language❙ Design your own markup language

❚ A streamlined subset of SGML❚ Designed for use on the Internet❚ A W3C Technical Recommendation

(February 10, 1998)

Page 16: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

16

The W3C

❚ The W3C is The World Wide WebConsortium, a voluntary association ofcompanies and non-profit organisations.Membership costs serious money, confersvoting rights. Complex procedures, withthe Chairman (Tim Berners-Lee) holdingall the high cards, but the big vendors(e.g. Microsoft, Adobe, Netscape) have alot of power.

Page 17: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

17

XML in Depth

❚ What is an XML Document?❚ What is it - syntax

Page 18: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

18

Documents

❚ Well-formed document: obeys the syntaxof XML

❚ Valid documents: a well-formed documentthat contains a proper document typedeclaration and obeys the constraints ofthat declaration

Page 19: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

19

Structure of XMLDocument

❚ Prolog❙ XML declaration - information about

document XML version and encodingExample:<?xml version=“1.0”?>

❙ Document Type Declaration (DTD)❘ internal - embedded in the document❘ external - pointer to the file with defined grammar

❚ Body - structured data with one rootelement

Page 20: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

20

XML Markup

❚ Comments❚ Entity references❚ Character references❚ Processing instructions❚ CDATA sections❚ Start tags and end tags❚ Empty elements

XML markup specifies the structure of thedocument. All text that is not markup is the characterdata of the document:

Page 21: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

21

Comments

❚ Comments make the structure of the documentclearer

❚ Can appear anywhere in a document❚ Comments are not part of the document data

(content of comments may be ignored by XMLparsers)

❚ Example:<name>

<!--This is a short comment-->

Smith

</name>

Page 22: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

22

Entity References

❚ Entity is a term that represents certain data❚ XML parser will substitute that data for the

entity❚ Entities can be used to store binary data❚ Predefined entities: amp, lt, gt, apos,quot that stand for: &, <, >, ‘, “

❚ Example:<statement>5 &lt; 8</statement>

Page 23: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

23

Character References

❚ Character reference is a character in theISO 10646 character set, usually notdirectly accessible from available inputdevices

❚ Character reference is specified as ahexadecimal or decimal code for acharacter

❚ Example:#x000d is a carriage return

Page 24: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

24

Processing Instructions

❚ Processing instructions are not part of thedocument’s data but must be passedthrough to the application❙ By-passing the XML processor and delivering

instructions directly to a process

❚ PI begins with the target applicationidentifier

<?xml version = “1.0” ?>

<?xml-stylesheet type=“text/xsl”href=“mystyle.xsl”?>

Page 25: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

25

CDATA Sections

❚ CDATA section can be used to storemarked-up text so that the markup is notevaluated

❚ CDATA sections are useful if the userwants to store XML markup as a data

❚ Example:<buffer>

<![CDATA[<price>50</price>]]>

</buffer>

Page 26: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

26

Elements- Start & EndTags

❚ Format: start tag, data, and end tag❚ The tags describe the data contained

between tags❚ The data within the tags is the value of the

element

<title>The Fish Slapping Dance</title>

<dance>The Fish Slapping Dance</dance>

Page 27: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

27

Attributes

❚ Attributes associate name-value pairswith elements

❚ Attributes may appear only within start-tags and empty-element tags

<size unit=“KB”>829</size>

Page 28: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

28

Empty Elements

❚ Empty element tag has special form<tagname/>

❚ Represent elements that have no content❚ Example:<img align=“left”source=“picture.jpg” />

Page 29: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

29

Example XML Document<?xml version="1.0" ?><!DOCTYPE doc SYSTEM "pubgrammar.dtd"><doc><publication number="pn1"><title>Collaborative Virtual Workspace</title><author><lastname>Spellman</lastname><firstname>Peter</firstname></author><date>1997</date><keywords>

<keyword>collaboration framework</keyword><keyword>virtual environments</keyword>

</keywords></publication></doc>

Page 30: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

30

Documents - Example

❚ The example shows plain XML documentdisplayed in Internet Explorer 5.0

❚ URL:http://msdn.microsoft.com/xml/samples/transform-viewer/auction1.xml

Page 31: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

31

The XML Success Story

❚ XML has been a runaway success, on amuch greater scale than its designersanticipated❙ Not for the reason they had hoped

❘ Because separation of form from content is right❙ But for a reason they barely thought about

❘ Data must travel the web❚ Tree structured documents are a useable

transfer syntax for just about anything❙ So data-oriented web users think of XML as a

transfer mechanism for their data

Page 32: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

32

XML is ASCII for the 21stcentury

❚ ASCII (ISO 646) solved a fundamentalinterchange problem❙ What bits encode what characters

❚ UNICODE/ISO 10646 extends to world-wide❚ XML thought it was doing the same for

simple tree-structured documents❙ The emphasis in the XML design was on

simplifying SGML to move it to the Web❙ XML didn't touch SGML's architectural vision

❘ flexible linearization/transfer syntax❘ for tree-structured documents with internal links

Page 33: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

33

Take Two: Just what isXML?

❚ It's a markup language used fortransferring data

❚ It is concerned with data models❙ to convert between application-appropriate

and transfer-appropriate forms

❚ It is not concerned with human beings❙ It's produced and consumed by programs

Page 34: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

34

Application Data

Part Name Part ID Price InStock

window 001 $ 40 yes

muffler 002 $ 150 yes

door 003 $ 30 no

Page 35: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

35

Structured Markup

<store>

<part id=“p001”><part-name>window</part-name>

<price>40</price>

<instock>yes</instock>

</part>

<part id=“p002”><part-name>muffler</part-name>

<price>150</price>

<instock>yes</instock>

</part></store>

Page 36: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

36

The CambridgeCommuniqué

❚ A W3C Note resulting from a meetingAug’99 (http://www.w3.org/TR/schema-arch)

❚ Signaled a widespread acceptance of XMLas a data layer:"XML has defined a transfer syntax for tree-structured documents;

"Many data-oriented applications are beingdefined which build their own data structureson top of an XML document layer, effectivelyusing XML documents as a transfer mechanismfor structured data; "

Page 37: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

37

The Communiqué, cont'd

❚ Called for support in XML Schema forspecifying mapping between the XMLdocument data model (or XML Infoset)and application-specific data models

❚ XML Schema is a W3C recommendation-in-progress for defining the structure ofdocument families

❚ A grammar for markup structureartice -> title, subtitle?, section+

orPOORDERHDR -> DATETIME, ORDERAMT

Page 38: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

38

Other XML Basic Concepts

❚ Content Descriptions❙ DTDs

❚ Namespaces❚ Content Descriptions

❙ Schemas

❚ Document Object Model❚ Data Islands

Page 39: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

39

Content Description

❚ Documents have structure❙ Document types❙ Document instances

❚ Structure can be defined❙ Informally❙ SGML DTD❙ XML DTD❙ Schema using XML

Page 40: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

40

Document GrammarSpecifications

Document Type Definition (DTD)❚ Provides formal definition of:

❙ tags used in XML document❙ order of the tags❙ containment relationships between tags❙ types of data contained in the elements

❚ Used for:

� XML document validation

� Describing grammar for other users

Page 41: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

41

More about a DTD

❚ Controls the manipulation of data❙ Requires everyone to use the same set of

tags the same way❚ Association with XML document:

(External Reference)<!DOCTYPE clip SYSTEM ”clipdef.dtd">

Page 42: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

42

Document Type Definition -Example

<!DOCTYPE clip [

<!ELEMENT clip (title,size)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT size (#PCDATA)>

<!ATTLIST sizeunit CDATA #REQUIRED>

]>

Page 43: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

43

Internal vs. External DTD

❚ External DTD - usual case<?xml version=“1.0”?>

<!DOCTYPE greeting SYSTEM “hello.dtd”>

<greeting>Hello</greeting>

❚ Internal DTD<?xml version=“1.0”?>

<!DOCTYPE greeting [

<!ELEMENT greeting (#PCDATA)>

]>

<greeting>Hello</greeting>

Page 44: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

44

DTD Notation Used forElement Content Declarations

(expression) - expression treated as a unit(a, b) - sequence: a followed by b(a|b) - choice: a or b but not botha? - a or nothinga+ - one or more occurrences of aa* - zero or more occurrences of aExample:(title,author+,date,keywords?)*

Page 45: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

45

Problem NamespacesAddresses

❚ Sometimes XML elements have the samename but mean different things

<title>The Fish Slapping Dance</title>

<title>Mr</title>

❚ Namespaces are a mechanism for solvingelements and attributes name conflicts

Page 46: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

46

Namespaces

❚ Collection of related XML elements andattributes identified by a URI reference

NOTE: URIs are used to avoidcollisions in namespace’s names

❚ Provides unique names for elements andattributes by adding context to the tags

❚ Enables reuse of grammar specifications

Page 47: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

47

XML Namespaces

❚ Makes XML truly extensible❚ Enables developers to mix data described

by multiple schemas into one XMLdocument instance

❚ Schema components are reusable

<ClipInfo:title>The Fish SlappingDance</title><PersonInfo:title>Mr</title>

Page 48: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

48

Namespaces - Declaration❚ Default declaration<clip xmlns="urn:Clip.org:ClipInfo">

<title>The Fish Slapping Dance</title>

</clip>

❚ Explicit declaration<cl:clip xmlns:cl="urn:Clip.org:ClipInfo"

xmlns:money="urn:Finance:Money"><cl:title>The Fish Slapping Dance</cl:title><cl:price money:currency="USdollar">14.76</cl:price>

</cl:clip>

Page 49: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

49

Document GrammarSpecifications

❚ XML Schema❙ Provides greater functionality than Document Type

Definition❘ Developed later (still in WD form)

❘ Aimed at Structured Data, not just Documents

❘ Therefore, Full Data-type support

❙ Uses XML syntax

❙ Association with XML document:<clip xmlns="x-schema:clipSchema.xml">

Page 50: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

50

XML Schema

❚ Validation of documents with markupfrom different namespaces

❚ Extensibility❙ Schema authors can add their own elements and

attributes to XML Schema documents

❚ Default element content❚ Data types with possibility of constraint

specifications❚ User defined data types

Page 51: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

51

XML Schema - MS XDRExample

<Schema xmlns="urn:schemas-npac-edu:clip-data"xmlns:dt="urn:schemas-microsoft-com:datatypes"><AttributeType name=“unit” dt:type=“string”required=“yes”/><ElementType name=“title” content=“textOnly”

dt:type=“string”/><ElementType name=“size” content=“textOnly”dt:type=“int”>

<attribute type=“unit”/></ElementType><ElementType name=“clip” content=“eltOnly”><element type=“title”/><element type=“size”/>

</ElementType></Schema>

Page 52: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

52

More on XML Schema

❚ Fortunately, XML Schema is actuallynotated in XML itself❙ Elements❙ Attributes❙ Types

❚ A type is a collection of constraints onelement content and attribute values

❚ A type may be either❙ simple, for constraining string values❙ complex, for constraining elements which

contain other elements

Page 53: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

53

The XML Schemaworldview

❚ Validity and well-formedness are XML 1.0concepts❙ They are defined over character sequences

❚ Namespace-compliant❙ It's defined over character sequences too

❚ XML Schema Schema-validity is layered ontop of XML 1.0 well-formedness plusNamespaces❙ XML document Infosets = Validity + WF + NS

Page 54: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

54

Valid and Well-FormedXML Documents

❚ Well-formed document:❙ contains one or more elements❙ there is precisely one root element❙ all other tags nest within each other correctly

❚ Valid document: document complies withDTD/Schema❙ content model validity: order and nesting❙ data type validity: correct type and other

constraints satisfaction e.g. value range

Page 55: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

55

Why validate?

❚ DTD/Schema guarantees an interface❚ Producers validate to ensure they are

providing what they promised❚ Consumers validate to check up on

producers❙ and to protect their applications

❚ Application authors validate to simplifytheir task❙ Leave error detection and analysis to the

validating parser

Page 56: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

56

� Programming API for XML documents

� Describes logical structure of document and theway a document is accessed and manipulated

� Defines naming convention for documentcomponents

� Enables straightforward access to the documentcomponents

� Implemented by the tools that enablemanipulation of XML documents

Document Object Model

Page 57: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

57

Document Object Model -Example

Page 58: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

58

Document Object Model -Example

root = doc.getDocumentElement();

//print tag name

System.out.println(root.getTagName());

//get first child element of the root

docElem = (Node) root.getFirstChild();

//print tag name

System.out.println(docElem.getTagName());

//print element type

System.out.println(docElem.getNodeType());

//print node value

docElem1 = (Text) docElem.getFirstChild();

System.out.println(docElem1.getNodeValue());

Page 59: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

59

XML Data Islands

❚ XML code embedded in an HTML page

❚ Enables integration of XML with HTML page (XML datacan be accessed by scripts)

❚ Contains well-formed XML document within <XML></XML> tags

<XML ID=”clipXML"><clip><title>The Fish Slapping Dance</title><size unit=“KB”>829</size>

</clip></XML>

clipXML.documentElement.childNodes.item(0).text

Page 60: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

60

Uses for XML

❚ Specific Languages for Specific Purposes❚ XML for Message Exchange❚ Programming with XML

❙ SAX vs. DOM Parsers❙ Validation

❚ Storing objects as XML documents

Page 61: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

61

Languages Based on XML

❚ Resource Description Framework (RDF)standard for metadata exchange, enables bettercontent searching on the Web

❚ Synchronized Multimedia Integration Language(SMIL) enables simple authoring of TV-likemultimedia presentations such as trainingcourses on the Web

❚ Scalable Vector Graphics (SVG) - a language fordescribing two-dimensional graphics in XML

Page 62: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

62

Evolution of XML

❚ Many XML languages, optimised fordifferent roles

❙ MathML -- for mathematics❙ SMIL -- for synchronised multimedia❙ RDF -- for describing “things”❙ XUL -- for describing the Navigator 5 user

interface

Page 63: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

63

The XML Family Tree

SGML

XML

HTML TEI

. . .

. . .

XHTMLSMIL

MathMLSpeechML

RDFXUL

Page 64: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

64

SMIL - General Information

❚ Synchronized Multimedia IntegrationLanguage - allows integrating a set ofmultimedia objects into a synchronizedmultimedia presentation

❚ SMIL provides mechanisms for❙ description of temporal behavior of the

presentation❙ description of layout of the presentation on the

screen❙ association of hyperlinks with media objects

Page 65: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

65

SMIL - Basic Concepts❚ Layout: the layout of the visual clips can

be defined, the clips can be assigned tothe predefined separate regions

❚ Clip playback: the clips can be playedfrom various sources and in differentmodes

❚ Clip temporal dependency: the clips canbe played in parallel or sequential manner

❚ Hyperlinks: a clip can be connected toanother clip or presentation

Page 66: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

66

SMIL Example<smil> <head> <meta name="title" content="Online Teaching Services promo" /> <meta name="author" content="Jay Moonah, CAT" /> <layout type="text/smil-basic-layout"> <root-layout width="280" height="316" background-color="white"/> <region id="AnimChannel1" title="AnimChannel1" left="0" top="0" height="265" width="280" fit="hidden"/> </layout></head><body> <par title="Online Teaching Services promo" author="Jay Moonah, CAT" > <audio src="final.rm" id="Soundtrack" title="Soundtrack"/> <animation src="otscompfin.swf" id="Animation" region="AnimChannel1" title="Animation" fill="freeze"/> <text src="cc.rt" id="caption" region="cc" title="cc" fill="freeze"/> </par></body></smil>

Page 67: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

67

SMIL - Example

❚ The example shows a presentationcreated using SMIL

❚ The presentation is displayed usingRealPlayer from RealNetworks

❚ The file with presentation is availablefrom:

http://www10.real.com/devzone/library/creating/smil/production.html

Page 68: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

68

MathML

❚ Designed to expresssemantics of maths

❚ Also can expresslayout

❚ Cut & paste intoMaple, Mathematica

❚ x2 + 4x + 4 =0<mrow> <mrow> <msup> <mi>x</mi> <mn>2</mn>

</msup> <mo>+</mo> <mrow> <mn>4</mn> <mo>&invisibletimes;</mo> <mi>x</mi> </mrow> <mo>+</mo> <mn>4</mn> </mrow> <mo>=</mo> <mn>0</mn></mrow>

Page 69: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

69

XHTML: NextGen HTML<?xml version="1.0" encoding="iso-8859-1"?><html xmlns="http://www.w3.org/TR/xhtml1" ><head> <title> Title of text XHTML Document </title></head><body><div class="myDiv"> <h1> Heading of Page </h1> <p> here is a paragraph of text. I will include inside this paragraph a bunch of wonky text so that it looks fancy. </p> <p>Here is another paragraph with <em>inline emphasized</em> text, and <b> absolutely no</b> sense of humor. </p> <p>And another paragraph, this one with an <img src="image.gif" alt="waste of time" /> image, and a <br /> line break. </p></div></body></html>

Page 70: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

70

XHTML

❚ Just like HTML, but based on XML rules

❚ Will support integration of different datainto a single document

Page 71: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

71

Other Use: Data Abstraction

❚ XML as a universal format for datainterchange

❙ Machines exchange data as XML-formatmessages

❙ Eliminates proprietary data formats❙ Lots of XML processing software available

Page 72: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

72

XML Messaging

FactorySupplier

Supplier

Supplier

Place order

Response

Page 73: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

73

Example Message

<partorders xmlns=“http://myco.org/Spec/partorders.desc”> <order ref=“x23-2112-2342” date=“25aug1999-12:34:23h”> <desc> Gold sprockel grommets, with matching hamster</desc> <part number=“23-23221-a12” /> <quantity units=“gross”> 12 </quantity> <delivery-date date=“27aug1999-12:00h”> </order> <order ref=“x23-2112-2342” date=“25aug1999-12:34:23h”> …. Order something else ….. </order></partorders>

Page 74: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

74

XML Tools

❚ Parsers, used for accessing, analyzing andtransforming XML documents (Sun,Microsoft, IBM)❙ Validating parsers❙ Non-validating parsers

❚ Editors, used for creating XML content(Microsoft, IBM)

❚ Java APIs for XML (Sun)

Page 75: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

75

XML Editor - Example

❚ The example demonstrates abilities ofXML Notepad

❚ The XML Notepad is available from:http://msdn.microsoft.com/xml/notepad/download

.asp

Page 76: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

76

XML Parsers

❚ Validation❚ Application Programming Interfaces

❙ Document Object Model (DOM) - tree based❘ compiles an XML document into an internal tree

structure❘ allows application to navigate the tree

❙ Simple API for XML (SAX) - event based❘ reports parsing events directly to the application

through callbacks❘ does not usually build an internal tree

Page 77: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

77

SAX Parser

SAXParser

ErrorHandler

DocumentHandler

Page 78: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

78

Browsing Document with SAX Parser

import org.xml.sax.HandlerBase;import org.xml.sax.AttributeList;public class MyHandler extends HandlerBase {

String tag = "outside";int indent = 0;

public void startElement (String name, AttributeList atts){int i;indent = indent + 2;for(i = 0; i < indent; i ++) {System.out.print(" ");

}System.out.println("Start element: " + name);tag = "inside";

}

Page 79: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

79

Browsing Document with SAX Parser

import org.xml.sax.Parser;import org.xml.sax.DocumentHandler;import org.xml.sax.helpers.ParserFactory;

public class XMLContent {static final String parserClass =

"com.ibm.xml.parsers.SAXParser";public static void main (String args[]) throws Exception

{Parser parser =

ParserFactory.makeParser(parserClass);DocumentHandler handler = new MyHandler();parser.setDocumentHandler(handler);for (int i = 0; i < args.length; i++) {

parser.parse(args[i]);}

}}

Page 80: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

80

Browsing Document with SAX Parser - Results

Start element: docStart element: publicationStart element: titleContent: Collaborative Virtual WorkspaceEnd element: titleStart element: authorStart element: lastnameContent: SpellmanEnd element: lastnameStart element: firstnameContent: PeterEnd element: firstname

End element: authorStart element: dateContent: 1997End element: dateStart element: keywordsStart element: keywordContent: collaboration framework

Page 81: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

81

DOM Parser

Document

Element publication

Element doc

Element publication

Element authorElement title

Text Element lastname Element firstname

Text Text

Page 82: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

82

Browsing Document with DOM Parser

import org.w3c.dom.*;import com.ibm.xml.parsers.DOMParser;public class DOMAccess {static final String parserClass =

"com.ibm.xml.parsers.DOMParser";

public static void main (String args[]) throws Exception{

DOMParser parser = new DOMParser();Document document;

Element root;NodeList publications;Element publication;Element author;Element lastname;Text nameString;

parser.parse(args[0]);

Page 83: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

83

Browsing Document with DOM Parser

document = parser.getDocument();root = document.getDocumentElement();System.out.println("Node name: " + root.getNodeName());

publications = root.getElementsByTagName("publication");publication = (Element) publications.item(0);System.out.println("Node name:"+publication.getNodeName());

author = (Element)(publication.getElementsByTagName("author")).item(0);System.out.println("Node name: " + author.getNodeName());

lastname = (Element)(author.getElementsByTagName("lastname")).item(0);System.out.println("Node name: " +lastname.getNodeName());

nameString = (Text) lastname.getFirstChild();System.out.println("Last Name: " + nameString.getData());

Page 84: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

84

Browsing Document with DOM Parser - Results

Node name: docNode name: publicationNode name: authorNode name: lastnameLast Name: Spellman

Page 85: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

85

Validation of Document

import org.xml.sax.Parser;import org.xml.sax.ErrorHandler;import org.xml.sax.helpers.ParserFactory;

public class Validator {

static final String parserClass ="com.ibm.xml.parsers.ValidatingSAXParser";

public static void main (String args[]) throwsException {

Parser parser =ParserFactory.makeParser(parserClass);

ErrorHandler handler = new ErrorReport();parser.setErrorHandler(handler);parser.parse(args[0]);

}}

Page 86: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

86

Validation of Document

import org.xml.sax.ErrorHandler;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;

public class ErrorReportimplements ErrorHandler {

/** Warning. */public void warning(SAXParseException ex) {

System.err.println("[Warning] "+getLocationString(ex)+": "+ex.getMessage());

}

/** Error. */public void error(SAXParseException ex) {

System.err.println("[Error] "+getLocationString(ex)+": "+ex.getMessage());

}

Page 87: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

87

Validation of Document - Modification

<doc><publications number="pn1"><title>Something More Interesting</title><author><lastname>Spellman</lastname><firstname>Peter</firstname></author><date>1997</date><keywords><keyword>collaboration framework</keyword><keyword>virtual environments</keyword></keywords></publications>...

Page 88: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

88

Validation of Document - Results

D:\docs\cis\domexample>java Validator ..\publications.xml

[Error] publications.xml:15:24: Attribute, "number", isnot declared in element, "publications".[Error] publications.xml:26:18: Element, "publications"is not declared in the DTD[Error] publications.xml:56:7: Element "<doc>" is notvalid because it does not follow the rule,"(publication)*".)

Page 89: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

89

Objects as XMLDocuments

❚ Customizing Java serialization mechanism❙ java.io.Serializable

❙ readObject(java.io.ObjectInputStream)

❙ writeObject(java.io.ObjectOutputStream)

❚ Solution for JavaBeans❙ use of information gathered from BeanInfo class❙ use of ‘set’ methods for each object field

Page 90: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

90

XSL Stylesheets

❚ Overview❚ Process❚ Result tree construction❚ XSL template element❚ XSL patterns❚ Important XSL elements❚ Displaying XML data in Web browsers

Page 91: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

91

Extensible StylesheetLanguage (XSL) Overview

❚ Enables display of XML by transforming XML intostructure suitable for display, for example HTML

❚ XSL transformations can be executed on the serverto provide HTML documents for older browsers

❚ Provides mechanisms for transformation of XMLdata from one schema to another

❚ Enables converting XML documents throughquerying, sorting, and filtering

❚ Association with XML document:<?xml-stylesheet type="text/xsl"href="mystyle.xsl"?>

Page 92: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

92

XSL - Style Sheets

❚ Contain a template of the desired resultstructure

❚ Identify data in the source document toinsert into the template

Example: Fragments of XSL documentdefine how elements of XML documentshould be transformed into HTMLdocument

Page 93: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

93

XSL Process

Source Tree Result Tree

Interpretationof result tree

Page 94: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

94

Process

❚ Construction of source tree from XMLdocument

❚ Transformation of source tree to resulttree using stylesheet in XSL document

❚ Application of style rules to each node ofresult tree

❚ Display of document by user agent usingappropriate styling on a display, on paperor some other medium

Page 95: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

95

XSL - Example

❚ The example illustrates how the XSLdocument is applied to XML documentand displayed in the Web browser

❚ The example must be viewed usingInternet Explorer 5.0

❚ URL:http://msdn.microsoft.com/xml/samples/transform-

viewer/transform-viewer.htm

Page 96: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

96

XSL Patterns

❚ Simple query language for identifying nodes inan XML document

❚ Identify nodes depending on:❙ type, name, and values❙ relationship of the node to other nodes in the

document

clip

clip/title

clip/*

clip/priceinfo/regprice

Page 97: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

97

XSL Patterns - Example

❚ The example shows how the parts of theXML document can be identified using XSLpatterns

❚ The example must be displayed inInternet Explorer 5.0

❚ URL:http://msdn.microsoft.com/xml/samples/authors/author-

patterns.htm

Page 98: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

98

Result Tree Construction

❚ Stylesheet - set of template rules❚ Template rule

❙ pattern - identifies the source node to whichthe processing is applied

❙ template - the fragment to be instantiated toform a part of the result tree

❚ Creation of result tree: finding thetemplate rule for the root node andinstantiating its template

Page 99: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

99

XSL Template Element

❚ Describes template rule❚ match attribute - source node to which the rule

applies❚ Content - the template, may contain XSL

formatting vocabulary❚ Conflict resolution

❙ most specific rule will be applied❙ priorities (priority attribute of the rule)

❚ Namespaces used to distinguish XSL instructionsfrom other template content

Page 100: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

100

XSL Patterns❚ Matching by name<xsl:template match=“publication”>

❚ Matching by ancestry<xsl:template match=“publication/title”>

❚ Matching several names<xsl:template match=“title|keyword”>

❚ Matching the root<xsl:template match=“/”>

❚ Wildcard matches<xsl:template match=“*”>

Page 101: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

101

XSL Patterns

❚ Matching by ID<xsl:template match=“id(pn1)”>

❚ Matching by attribute<xsl:templatematch=“publication[attribute(number)=‘pn1’]”>

❚ Matching by child<xsl:template match=“publication[date]”>

❚ Matching by position<xsl:template match=“publication[first-of-type()]”>

Page 102: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

102

Other Important Elements

❚ Applies template rules to the children of the node<xsl:value-of select=“pattern”>

❚ Extracts value of element pattern<xsl:for-each select=“pattern”>

❚ Performs operation for each element described bypattern

<xsl:sort select=“key”>

❚ Used in apply-template or for-eachelement, sorts children according to the key

Page 103: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

103

XSL Stylesheet - Translation to HTML

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"xmlns:HTML="http://www.w3.org/Profiles/XHTML-transitional">

<xsl:template><xsl:apply-templates/></xsl:template>

<xsl:template match="/doc"><HTML>

<HEAD><TITLE>Publications</TITLE>

</HEAD><BODY>

<xsl:apply-templates/></BODY>

</HTML></xsl:template>

Page 104: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

104

XSL Stylesheet - Translation to HTML

<xsl:template match="/doc/publication"><P><H1>Title: <xsl:value-of select="title"/></H1>Author:<BR/><xsl:apply-templates select="author"/><BR/>Date: <xsl:value-of select="date"/><BR/>Keywords:<BR/><xsl:apply-templates select="keywords"/></P><HR/>

</xsl:template>

Page 105: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

105

XSL Stylesheet - Translation to HTML

<xsl:template match="/doc/publication/author"><B><xsl:value-of select="firstname"/><xsl:value-of select="lastname"/></B> <BR/>

</xsl:template>

<xsl:template match="/doc/publication/keywords"><I><xsl:apply-templates select="keyword"/></I> <BR/>

</xsl:template>

<xsl:template match="/doc/publication/keywords/keyword"><I><xsl:value-of/></I> <BR/>

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

Page 106: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

106

XML Before XSL X-form<?xml version="1.0" ?><!DOCTYPE doc SYSTEM "pubgrammar.dtd"><doc><publication number="pn1"><title>Collaborative Virtual Workspace</title><author><lastname>Spellman</lastname><firstname>Peter</firstname></author><date>1997</date><keywords>

<keyword>collaboration framework</keyword><keyword>virtual environments</keyword>

</keywords></publication></doc>

Page 107: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

107

XSL Stylesheet - Translation to HTML

Page 108: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

108

XML Benefits

❚ 21st Century ASCII❚ Validation❚ Good representation of tree data❚ Multiple views thru XSL

Page 109: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

109

XML Benefits

❚ Supported by all major vendors, includingMicrosoft, IBM, Netscape, Sun

❚ Easy Client-side manipulation❙ Designed to be easy to parse❙ 26K of Java code (Aelfred)❙ 5K of JavaScript

❚ Free XML parsers available, even forcommercial use

Page 110: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

110

Resources❚ Microsoft Website

❙ http://msdn.microsoft.com/xml❙ http://www.microsoft.com/iis❙ http://www.microsoft.com/ie

❚ W3C XML Web Site❙ http://www.w3.org/

❚ XML Resources:www.oasis-open.org/cover

❚ Books:❙ “The XML Handbook” Charles Goldfarb (Prentice Hall)❙ “XML Applications” (Wrox Press)

Page 111: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

111

Resources

❚ More tutorials and informations fordevelopers:

http://www.zdnet.com/devhead/filters/xml/http://www.xml.com

❚ Resources at NPAC:http://www.npac.syr.edu/projects/tutorials/XML

/

Page 112: Andy Scholand - Georgia Institute of Technology...Andy Scholand andrew.scholand@cad.gatech.edu 2/29/00 For Georgia Tech courses: ME 6754 et al. 11/13/00 - minor updates (R. Peak) 2

112

References

❚ XML Applications by Frank Boumphrey et al.❚ XML Complete by Steven Holtzner❚ Extensible Stylesheet Language (XSL) Version 1.0, W3C

Working Draft 16-Dec-98❚ Extensible Markup Language (XML) 1.0, W3C

Recommendation 10-Feb-98❚ SAX - http://www.megginson.com/SAX❚ Document Object Model (DOM) Level 1 Specification,

Verson 1.0, W3C Recommendation 1-Oct-98❚ Various Info - www.xml.com❚ Parsers and Tools -

http://www.alphaworks.ibm.com/tech/xml/