XML for Dummies

tansygoobertownInternet and Web Development

Dec 8, 2013 (3 years and 6 months ago)

51 views

XML for Dummies

(and managers)

Mark Pascall

Technical Architect

Overview

What is XML?

Extensible Markup
Language

Many pieces in the XML
puzzle

Very fast moving

First


back to basics….

XML
Schem
a

SOA
P

Name
space

XML

XSLT

XQuery

HTM
L

XPointer

Xlink

Web Clients

(Browser)

Web Server

How the Internet works….

Get me that text file

OK here it is

Hypertext Mark
-
up Language

<h1>Here is the title</h1>

<p>This is a piece of <b>Text</b> </p>


A formatting language

Browser knows how to interpret the tags.

What is Extensible Markup
Language?

NOT a markup language

Meta
-
markup Language

Set of very simple rules

XML provides a uniform method for
describing and exchanging structured data

Describes structure and semantics, not
formatting

French

English

German

…..

1.
Use letters of alphabet.

2.
Spaces between words.

3.
Read from left to write.

…..


Meta Language

SVG

WML

MathML

…..

1.
Tags must not overlap

2.
Tags case
-
sensitive

3.
Must have root tag

……


XML Specification

The XML Rules….

1.
Single, unique root
element

2.
Matching open/close
tags

3.
Consistent
capitalisation

4.
Correctly nested
elements (no
overlapping elements)

5.
Attribute values
enclosed in quotes

6.
No repeating attributes
in an element

<?xml version=“1.0”?>

<company id=“4859”>

<name>3Months.com</name>

<type>Web Development</type>

<address>

<street>Wakefield st</street>

<city>Wellington</city>

<country>New Zealand</country>

</address>

</company>

Well Formed

History of XML

Standard Generalised Markup Language

Been around since early 90’s

XML is a sub
-
set of SGML (SGML
-
lite)

XML has smaller and simpler syntax

SGML’s development provides the
foundation for XML

XML is therefore not “bleeding edge”

Why XML is so powerful

Provides international, vendor
independent standard for describing
information

Any information


structured or
unstructured

TCP/IP

HTTP

XML

XML Markup
languages/vocabularies

Remember XML is a meta
-
language

Anybody can create their own language

Why would you want to?

Each language designed for a specific
purpose….

Mathematical Markup Language
(MathML)

x2 + 4x + 4 =0


<apply><plus/>


<apply><power/>


<ci>x</ci>


<cn>2</cn>


</apply>


<apply> <times/>


<cn>4</cn>


<ci>x</ci>


</apply>


<cn>4</cn>

</apply>

Synchronized Multimedia
Integration Language (SMIL)

<DIV CLASS=“time” t:timeline=“seq”>


<P class=“time” t:dur=“1”>


This appears for one second and goes away


</P>


<P class=“time” t:dur=“1”>


This appears after one second, remains visible for one second and
goes away


</P>


<P class=“time” t:dur=“1”>


This appears after two seconds, remains visible for one second and
goes away


</P>

</DIV>

Vector Markup Language

<v:shape style=‘top: 0; left: 0; width: 250; height: 250’
stroke=“true” strokecolor=“red” strokeweight=“2”
fill=“true


fillcolor=“green” coordorigin=“0 0”
coordsize=“175 175”>

<v:path v=“m 8,65 l
72,65,92,11,112,65,174,65,122,100,142,155,92,121,42,
155,60,100


x e”/>

</v:shape>

Wireless Markup Language

<wml>

<!
--

root element
--
>

<card id="card1" title="Example 1">

<p> <!
--

a card can only contain P blocks or DO blocks
--
>


<do type="accept" label="go to card 2">


<go href="#card2"/></do> This is the first card. </p>


</card> <card id="card2" title="Example 1">

<p> This is the second card. </p>

</card>

</wml>


Hypertext Markup Language (HTML)

<h1>The Title</h1>

<p>This is a piece of <b>HTML </b> </p>


Or is it??

Next version of HTML = XHTML

XML Schemas and DTDs

XML is about communication

Need to speak the same language

Schemas/DTDs describe the vocabulary of
the language

i.e. what tags are used and how they can
be organised

Schemas will replace DTDs

An Example Schema

<?xml version="1.0" encoding="UTF
-
8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xsd:element name="PressRelease">


<xsd:complexType>


<xsd:sequence>


<xsd:element name="Title" type="xsd:string"/>


<xsd:element name="Date" type="xsd:date"/>


<xsd:element name="Content" type="xsd:string"/>


<xsd:element name="Author" type="xsd:string" minOccurs="0"/>


</xsd:sequence>


</xsd:complexType>

</xsd:element>

</xsd:schema>

<?xml version="1.0" encoding="UTF
-
8"?>

<PressRelease>


<Title>Studend Loan Problems</Title>


<Date>20/7/01</Date>


<Content>Bla Bla Bla</Content>

</PressRelease>

Introducing XSL
-
T

Extensible Stylesheet Language

Standard ratified this year by W3C

Way of transforming an XML document
into another document

Transformation

XML


document

XSLT


document

XSLT Processor

Text

HTML

XML

Summary

The XML Specification = Meta
-
language for
describing XML Mark
-
up languages

XML Schemas (and DTD’s) describe the
structure of a particular XML Mark
-
up
language

XSL
-
T documents transform XML document
into another format (HTML, XML etc)

XML in Action


a case study

Agenda

Case study background

Choosing a DTD/Schema

Creating XML


the options

Storing XML


the options

Presenting XML


the options

Solution Benefits

Demo

Case study background

October 2001


won contract to redevelop E
-
government
website (
www.e
-
government.govt.nz
)

Business requirements


Usual stuff (accessible, usable etc)


Guidelines compliant (squeaky clean)

“Content must be made available in a standard HTML format.
Where information is provided in a proprietary format an
alternative HTML version must also be made available.”

Can’t just put it up as a PDF anymore


Simple publishing process


Future
-
proofed

Constraints


Limited budget


Tight timeframe

Traditional options

Static site


Did not give simple publishing process for
“unskilled” people

Content Management System


Store information in RDBMS


Not good for “document centric” applications


Cost, timeframe, simple workflow
requirements

The challenge


To create a system that allows non
-
technical
authors to publish to guidelines compliant
HTML (and eventually other formats)

The solution


XML

Choosing a DTD/Schema

Make up your own

Don’t reinvent the wheel!

Xml.org

We selected a subset of DocBook


Could handle all the information we needed to
store


Supported by a growing number of products

NZETC uses TEI

Creating XML


the Options

Use an XML editor


E.g. XML Spy, Xmetal, Framemaker etc


Allow you to create a document that conforms
to a specified DTD/Schema


Problem: everybody potentially an author

Convert Word documents to XML


Styles

Word

(using Styles)

HTML

(Internet)

Anything you want!!

eBook

DocBook

XML

XSL
-
T for
convertion

Word is
authoritative
source

Xcon Demo


Storing XML


the Options

Relational database

Native XML Repository


E.g. Excelon, Tamino, Ipedo,
Xindice


First generation products


At the time too immature/expensive

On the file system

Presenting XML


the Options

Publishing to humans

Need to “transform” XML to a format appropriate
for humans

Physical print


out of scope

HTML obvious choice

XSL
-
T to transform XML to HTML

Not the only way to present to humans


SMIL, SVG, MathML etc


Audience must have software

What about publishing “Raw” XML?

XML

document

Organisation A
Website

Organisation B
Website

HTML

document

Organisation C
Website

HTML

document

XML

document

Demo