XML is a markup language used to carry data, not display it. It allows users to define their own tags for structuring data. XML separates data from presentation, allowing data to be stored and transported independently of formatting and style. This makes XML well suited for transporting data between incompatible systems.
2. Introduction to XML
2
XML stands for EXtensible Markup Language
XML is a markup language much like HTML
XML was designed to carry data, not to display data
XML tags are not predefined.You must define your own tags
XML is designed to be self-descriptive
XML is aW3C Recommendation
3. XML is Not a Replacement for HTML
3
It is important to understand that XML is not a
replacement for HTML. In most web applications,
XML is used to transport data, while HTML is used to
format and display the data.
4. With XML You Invent Your Own Tags
4
The tags used in HTML are predefined. HTML documents
can only use tags defined in the HTML standard (like <p>,
<h1>, etc.).
XML allows the author to define his/her own tags and
his/her own document structure.
5. XML Separates Data from HTML
5
If you need to display dynamic data in your HTML
document, it will take a lot of work to edit the HTML
each time the data changes.
With XML, data can be stored in separate XML files.
This way you can concentrate on using HTML/CSS for
display and layout, and be sure that changes in the
underlying data will not require any changes to the
HTML.
With a few lines of JavaScript code, you can read an
external XML file and update the data content of your
web page.
6. XML Simplifies Data Transport
6
One of the most time-consuming challenges for
developers is to exchange data between
incompatible systems over the Internet.
Exchanging data as XML greatly reduces this
complexity, since the data can be read by
different incompatible applications.
7. HTML and XML, I
7
XML stands for eXtensible Markup Language
HTML is used to mark up
text so it can be displayed to
users
XML is used to mark up
data so it can be processed
by computers
HTML describes both
structure (e.g. <p>, <h2>,
<em>) and appearance (e.g.
<br>, <font>, <i>)
XML describes only
content, or “meaning”
HTML uses a fixed,
unchangeable set of tags
In XML, you make up
your own tags
8. HTML and XML, II
8
HTML and XML look similar, because they are both SGML
languages (SGML = Standard Generalized Markup Language)
Both HTML and XML use elements enclosed in tags (e.g.
<body>This is an element</body>)
Both use tag attributes (e.g.,
<font face="Verdana" size="+1" color="red">)
Both use entities (<, >, &, ", ')
More precisely,
HTML is defined in SGML
XML is a (very small) subset of SGML
9. HTML and XML, III
9
HTML is for humans
HTML describes web pages
You don’t want to see error messages about the web pages you
visit
Browsers ignore and/or correct as many HTML errors as they
can, so HTML is often sloppy
XML is for computers
XML describes data
The rules are strict and errors are not allowed
In this way, XML is like a programming language
Current versions of most browsers can display XML
However, browser support of XML is spotty at best
10. XML-related technologies
10
DTD (DocumentType Definition) and XML Schemas are used to
define legal XML tags and their attributes for particular purposes
CSS (Cascading Style Sheets) describe how to display HTML or
XML in a browser
XSLT (eXtensible Stylesheet LanguageTransformations) and
XPath are used to translate from one form of XML to another
DOM (Document Object Model), SAX (SimpleAPI for XML, and
JAXP (JavaAPI for XML Processing) are allAPIs for XML parsing
11. Example XML document
11
<?xml version="1.0"?>
<weatherReport>
<date>7/14/97</date>
<city>North Place</city>, <state>NX</state>
<country>USA</country>
High Temp: <high scale="F">103</high>
Low Temp: <low scale="F">70</low>
Morning: <morning>Partly cloudy, Hazy</morning>
Afternoon: <afternoon>Sunny & hot</afternoon>
Evening: <evening>Clear and Cooler</evening>
</weatherReport>
12. Overall structure
12
An XML document may start with one or more processing
instructions (PIs) or directives:
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="ss.css"?>
Following the directives, there must be exactly one root element
containing all the rest of the XML:
<weatherReport>
...
</weatherReport>
13. XML building blocks
13
Aside from the directives, an XML document is built from:
elements: high in <high scale="F">103</high>
tags, in pairs: <high scale="F">103</high>
attributes: <high scale="F">103</high>
entities: <afternoon>Sunny & hot</afternoon>
character data, which may be:
parsed (processed as XML)--this is the default
unparsed (all characters stand for themselves)
14. Elements and attributes
14
Attributes and elements are somewhat interchangeable
Example using just elements:
<name>
<first>David</first>
<last>Matuszek</last>
</name>
Example using attributes:
<name first="David" last="Matuszek"></name>
You will find that elements are easier to use in your programs--this is a
good reason to prefer them
Attributes often contain metadata, such as unique IDs
Generally speaking, browsers display only elements (values enclosed by
tags), not tags and attributes
15. Well-formed XML
15
Every element must have both a start tag and an end tag, e.g.
<name> ... </name>
But empty elements can be abbreviated: <break />.
XML tags are case sensitive
XML tags may not begin with the letters xml, in any
combination of cases
Elements must be properly nested, e.g. not <b><i>bold and
italic</b></i>
Every XML document must have one and only one root element
The values of attributes must be enclosed in single or double
quotes, e.g. <time unit="days">
Character data cannot contain < or &
16. Entities
16
Five special characters must be written as entities:
& for & (almost always necessary)
< for < (almost always necessary)
> for > (not usually necessary)
" for " (necessary inside double quotes)
' for ' (necessary inside single quotes)
These entities can be used even in places where they are not
absolutely required
These are the only predefined entities in XML
17. XML declaration
17
The XML declaration looks like this:
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
The XML declaration is not required by browsers, but is required by most
XML processors (so include it!)
If present, the XML declaration must be first--not even whitespace should
precede it
Note that the brackets are <? and ?>
version="1.0" is required (this is the only version so far)
encoding can be "UTF-8" (ASCII) or "UTF-16" (Unicode), or something
else, or it can be omitted
standalone tells whether there is a separate DTD
18. XML Encoding
XML documents can contain international characters, like
Norwegian æøå, or French êèé.
To avoid errors, you should specify the encoding used, or
save your XML files as UTF-8.
Unicode is an industry standard for character encoding of
text documents. It defines (nearly) every possible
international character by a name and a number.
Unicode has two variants: UTF-8 and UTF-16.
UTF = Universal character set Transformation Format.
18
19. XML Encoding
UTF-8 uses a single byte (8-bits) to represent commonly
used characters and two (or three) bytes for the rest.
UTF-16 uses two bytes (16 bits) for most characters, and
three bytes for the rest.
UTF-8 Web Standard
UTF-8 is the standard character encoding on the web.
UTF-8 is the default character encoding for HTML-5, CSS,
JavaScript, PHP, SQL, and XML.
19
20. Processing instructions
20
PIs (Processing Instructions) may occur anywhere in the XML
document (but usually first)
A PI is a command to the program processing the XML document
to handle it in a certain way
XML documents are typically processed by more than one
program
Programs that do not recognize a given PI should just ignore it
General format of a PI: <?target instructions?>
Example: <?xml-stylesheet type="text/css"
href="mySheet.css"?>
21. Comments
21
<!-- This is a comment in both HTML and XML -->
Comments can be put anywhere in an XML document
Comments are useful for:
Explaining the structure of an XML document
Commenting out parts of the XML during development and testing
Comments are not elements and do not have an end tag
The blanks after <!-- and before --> are optional
The character sequence -- cannot occur in the comment
The closing bracket must be -->
Comments are not displayed by browsers, but can be seen by
anyone who looks at the source code
22. CDATA
22
By default, all text inside an XML document is parsed
You can force text to be treated as unparsed character data by
enclosing it in <![CDATA[ ... ]]>
Any characters, even & and <, can occur inside a CDATA
Whitespace inside a CDATA is (usually) preserved
The only real restriction is that the character sequence ]]> cannot
occur inside a CDATA
CDATA is useful when your text has a lot of illegal characters (for
example, if your XML document contains some HTML text)
23. Names in XML
23
Names (as used for tags and attributes) must begin with a
letter or underscore, and can consist of:
Letters, both Roman (English) and foreign
Digits, both Roman and foreign
. (dot)
- (hyphen)
_ (underscore)
: (colon) should be used only for namespaces
Combining characters and extenders (not used in English)
24. Namespaces
24
Recall that DTDs are used to define the tags that can be used
in an XML document
An XML document may reference more than one DTD
Namespaces are a way to specify which DTD defines a given
tag
XML, like Java, uses qualified names
This helps to avoid collisions between names
Java: myObject.myVariable
XML: myDTD:myTag
Note that XML uses a colon (:) rather than a dot (.)
25. Review of XML rules
25
Start with <?xml version="1"?>
XML is case sensitive
You must have exactly one root element that encloses all the
rest of the XML
Every element must have a closing tag
Elements must be properly nested
Attribute values must be enclosed in double or single
quotation marks
There are only five predeclared entities
26. Another well-structured example
26
<novel>
<foreword>
<paragraph> This is the great American novel.
</paragraph>
</foreword>
<chapter number="1">
<paragraph>It was a dark and stormy night.
</paragraph>
<paragraph>Suddenly, a shot rang out!
</paragraph>
</chapter>
</novel>
27. Valid XML
27
You can make up your own XML tags and attributes, but...
...any program that uses the XML must know what to expect!
A DTD (DocumentType Definition) defines what tags are legal and
where they can occur in the XML
An XML document does not require a DTD
XML is well-structured if it follows the rules given earlier
In addition, XML is valid if it declares a DTD and conforms to that DTD
A DTD can be included in the XML, but is typically a separate document
Errors in XML documents will stop XML programs
Some alternatives to DTDs are XML Schemas and RELAX NG
28. Viewing XML
28
XML is designed to be processed by computer programs, not
to be displayed to humans
Nevertheless, almost all current browsers can display XML
documents
They don’t all display it the same way
They may not display it at all if it has errors
For best results, update your browsers to the newest available
versions
Remember:
HTML is designed to be viewed,
XML is designed to be used
29. Displaying your XML Files with CSS
With CSS (Cascading Style Sheets) you can add display
information to an XML document.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
</CATALOG>
29