XML at Light Speed: XML,
XML + CSS1, XML Namespaces, and RDF
Eric Krock
Senior Product Manager
Netscape Communicator
http://sites.netscape.net/ekrock/answers.html
What is XML?
|
|
|
eXtensible Markup Language |
|
a way to define your own markup
languages with their own meaningful elements |
|
W3C Recommendation |
|
the future of structured data |
Why XML?
|
|
|
need to represent and exchange
structured data on the web |
|
HTML provides minimal structure (H1,
H2, DIV, P, SPAN, etc.) |
|
HTML tag names have little meaning, so
it’s hard to exchange or automatically process data |
|
can’t define your own new tag names in
HTML |
|
XML combines the power of SGML with the
simplicity of HTML |
What XML Does
|
|
|
provides way to define own markup
language (“XML application”) with its own tag names |
|
tag names can have meaning (PRICE,
QUANTITY, etc.) |
|
says nothing about presentation format
of data (for that, need CSS) |
XML Syntax Notes
|
|
|
|
case-sensitive |
|
well-formedness constraints (partial
list) |
|
every element must have start tag and
end tag |
|
elements must be correctly nested |
|
attribute values must be quoted
(matching single or double) |
|
XML parser checks XML document to make
sure that [1] it is well-formed (complies with all w.f. constraints in
specification), and [2] it is valid, meaning the tag names and order conform
to the XML application’s Document Type Definition (DTD)—the definition of
what tags it may have and in what order |
Sample XML Elements
|
|
|
<price
id=“a238”>23.54</price> |
|
start tag syntax: <name> |
|
attribute-value pairs in start tag |
|
data |
|
end tag syntax: </name> |
|
two examples of empty elements: |
|
<br></br> |
|
<br/> |
|
note special abbreviated syntax of
second empty element |
Simple XML Document
|
|
|
<?xml version="1.0"?> |
|
<item> |
|
<name>Super Widget</name> |
|
<price>25.00</price> |
|
<partnumber>XN-233a</partnumber> |
|
<features> |
|
<woofer/> |
|
<tapeplayer/> |
|
</features> |
|
</item> |
How Can I Format XML
Documents? XML + CSS1
|
|
|
Use CSS1 to format your XML documents. |
|
Associating Style Sheets with XML
Documents (W3C Recommendation) |
|
Put a processing instruction in your
XML file to import the style sheet:
<?xml-stylesheet href="mystyle.css"
type="text/css"?> |
|
Put CSS rules in the style sheet
file:
Airline {
display: block;
font-style: italic;
} |
How Can I Mix Elements
From Different DTDs?
|
|
|
Different organizations will define
their own DTDs for various purposes. |
|
You may wish to mix elements from more
than one DTD in a single document. |
|
XML Namespaces Recommendation makes
this possible. |
|
For example, you can use HTML elements
within an XML file. |
|
Element names are given a prefix
indicating which application (namespace) they came from. |
Example: XML + CSS1 +
HTML Namespaces
|
|
|
<?xml version=“1.0”> |
|
<?xml-stylesheet href=“mystyle.css”
type=“text/css”?> |
|
<window
xmlns:html=http://www.w3c.org/TR/REC-html40
xmlns=http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul> |
|
<html:div>Hello,
world</html:div> |
|
</window> |
Resource Description
Framework
|
|
|
an XML application |
|
a W3C Recommendation |
|
provides metadata (information about
information) |
|
shows relationships between items |
|
create labeled directed graphs of nodes
which have attribute/value pairs |
|
can use it to define a data store (such
as bookmarks in Mozilla) |
What’s in Mozilla?
|
|
|
|
full support for XML 1.0 and RDF |
|
James Clark’s expat XML parser |
|
ability to create RDF data stores |
|
support for XML + CSS1 and XML
Namespaces |
Where to Learn More
|
|
|
W3C Recommendations at http://www.w3c.org/tr/ |
|
http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/ |
|
netscape.public.dev.xml |
|
comp.text.xml |
|
netscape.public.dev.rdf |
|
My FAQ:
http://sites.netscape.net/ekrock/answers.html |
XML Summary
|
|
|
makes it easier to exchange and process
structured data |
|
makes data on the web usable by
software and applications |
|
enables delivery of structured data to
end users |