Top Banner
XML by Jon Pearce
25

XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

XML

by Jon Pearce

Page 2: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

What is XML?

XML = eXstensible Markup Language = a meta language for defining markup languages.

Examples:

MathML, SVG (Scalable Vector Graphics), WML (Wireless Markup Language), XBRL (Extensible Business Reporting Language), XUL (Extensible User Interface Language), PDML (Product Data Markul Language), CML (Chemical ML), VoiceXML, VML (Vector ML), cXML (Commerce XML), tpaML (Traqding partner agreement XML), SMBXML (Small to Medium Business XML), FinXML (Financial XML), SOAP, XHTML, OWL

Page 3: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

XML History

• Standard Generalized Markup Language– Invented in 1980s for publishing industry– Markup meta language– HTML is an SGML language– Ancestor of XML

Page 4: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Uses of XML• Data Storage

– Object Serialization– Presentation Independent– Language Independent

• Application Initialization

• Message Passing– Between Tiers

• Data-Business-Presentation-Client

– SOAP and Web Services

Page 5: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

An XML Document Contains:• A Prolog

• Elements<tag> content </tag>

• Comments<!-- don't read this -->

• CDATA Sections<![CDATA[ pre-formatted text]]>

• Processing Instructions (PIs)<? do it ?>

Page 6: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Format of an XML Document

<?xml version="1.0"?><root> ELEMENT ELEMENT ...</root>

Page 7: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Tree Structure of an XML Document

Prolog

Root Element

Child Element

Child Element Child Element

Page 8: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

A Document Prolog Contains:

• XML Declaration<?xml version="1.0" ?>

• DTD (optional)

• Style Sheet (optional)

• etc.

<?xml version="1.0"?><!DOCTYPE addresses SYSTEM "addresses.dtd"><?xml-stylesheet type="text/xsl" href="addresses1.xsl"?>

Page 9: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

An XML Element Contains:

• <TAG attributes> content </TAG> <DATE status="cancelled">

09/01/2002</DATE>

• An empty element:<TAG attributes />

Page 10: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Example: book.xml

<?xml version="1.0"?><addresses> PERSON PERSON PERSON ...</addresses>

Page 11: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

A Person Element (1)

<person> NAME ADDRESS PHONE</person>

Page 12: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

A Person Element (2)

<person> <name> <first> Joe </first> <last> Smith </last> </name> <address> <street> 123 Sesame St </street> <city> New York </city> <state> NY </state> </address> <phone> (555) 555-1234 </phone> </person>

Page 13: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Displaying XML in IE

Page 14: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Grammars

• G = a grammar

• L(G) = Language defined by G

• w L(G) means w is a valid L(G) sentence

• Example:– G = English grammar– G = Java grammar

Page 15: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Grammar Rules

• An EBNF grammar is a list of rules of the form:– PARENT ::= CHILDREN

• CHILDREN is a regular expression:– A B, A | B, A*, A?, 'leaf'

Page 16: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Addresses EBNF

ADDRESSES ::= PERSON*PERSON ::= NAME ADDRESS PHONENAME ::= FIRST LASTADDRESS ::= STREET CITY STATEPHONE, FIRST, LAST, STREET, CITY, STATE ::= STRING

Page 17: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

addresses.dtd<!ELEMENT addresses (person*)><!ELEMENT person (name, address, phone)><!ELEMENT name (first, last)><!ELEMENT first (#PCDATA)><!ELEMENT last (#PCDATA)><!ELEMENT address (street, city, state)><!ELEMENT street (#PCDATA)><!ELEMENT city (#PCDATA)><!ELEMENT state (#PCDATA)><!ELEMENT phone (#PCDATA)>

Page 18: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

book.xml (with a dtd)

<?xml version="1.0"?><!DOCTYPE addresses SYSTEM "addresses.dtd"><addresses> PERSON PERSON PERSON ...</addresses>

Page 19: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Well Formed vs. Valid Documents

• Validating Parsers determine if an XML document conforms to its DTD

• Non-validating parsers merely determine if an xml document is well formed

Page 20: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Extensible Style Sheet Language

• XSL is an XML language for describing a transformation

• An XSL document describes a transformation that transforms XML documents into xHTML documents

Page 21: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

XSL Format

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:template match="/">

HTML + XML instructions

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

Page 22: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

XSL Markup

• <xsl:for-each select=TAG> ... </for-each>– selects each element in an XML document

matching TAG and performs ...

• <xsl:value-of select=TAG />– Displays the value of TAG

Page 23: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

addresses.xsl

<html><head><title> Addresses </title></head><body>Here are your addresses:<xsl:for-each select="addresses/person"> <br /><hr /> <font color="red"> <b><i> name = <xsl:value-of select="name"/> </i></b> </font> <br /> phone = <xsl:value-of select="phone"/></xsl:for-each> <br /><hr /></body></html></xsl:template> </xsl:stylesheet>

Page 24: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

book.xml (with an xsl)

<?xml version="1.0"?><!DOCTYPE addresses SYSTEM "addresses.dtd"><?xml-stylesheet type="text/xsl" href="addresses.xsl"?><addresses> PERSON PERSON PERSON ...</addresses>

Page 25: XML by Jon Pearce. What is XML? XML = eXstensible Markup Language = a meta language for defining markup languages. Examples: MathML, SVG (Scalable Vector.

Displaying book.xml in IE (2)