Lists Home |
Date Index |
My tutorials on RELAX NG and XHTML 2 are now available from:
These presentations are licensed under the GNU GPL, available at
http://www.opensource.org/licenses/gpl-license.php and many other places.
Here's the write-up from XML 2003.
Title: RELAX NG: DTDs on Warp Drive
Abstract: In this tutorial you will learn how to use the RELAX NG schema
language, an alternative schema language for XML. RELAX NG allows easy
and intuitive descriptions of just what is and what is not allowed in
an XML document. It is simple enough to learn in a few hours, and rich
and flexible enough to support the design and validation of every kind
of document from the very simple to the very complex. Once RELAX NG's
concepts have crossed the blood-brain barrier, you will never be able
to take any other schema language quite seriously again.
RELAX NG is an evolution and generalization of XML DTDs, and it shares
the same basic paradigm. Based on experience with SGML and XML, RELAX NG
both adds and subtracts features from DTDs. XML DTDs can be automatically
converted into RELAX NG. Experts in designing SGML and XML DTDs will find
their skills transfer easily to designing RELAX NG. Design patterns that
are used in XML DTDs can be used in RELAX NG. Overall, RELAX NG is much
more mature (and it is possible to have a higher degree of confidence
in its design) than it would be if it were based on a completely new
and different paradigm.
A major goal of RELAX NG is that it be easy to learn and easy to
use. Schemas can be patterned after the structure of the documents
they describe, but need not be: definitions to be composed from other
definitions in a variety of ways. Attributes and elements are treated
uniformly as much as possible. RELAX NG supports pluggable simple datatype
libraries, from a trivial one that describes only strings and tokens
to the full XML Schema Part 2; new ones can be readily designed and
built as needed. RELAX NG provides full support for namespaces. RELAX
NG provides two interconvertible syntaxes, an XML one for processing,
and a compact non-XML one for human authoring.
RELAX NG has been standardized in OASIS by the RELAX NG Technical
Committee, and is Part 2 of ISO DSDL, the Document Schema Definition
Languages umbrella. As a bonus, attendees will learn something about
XLink and something about XML Schema Part 2: Datatypes.
Prerequisites: Understanding of XML; basic understanding of XML
DTDs. Knowledge of XML Schema or SGML DTDs is helpful, but not required.
Title: Moving Toward XHTML 2.0
Abstract: XHTML 2.0 is an evolving standard being worked on by the HTML
Working Group of the W3C. It is the first major change to the semantics of
HTML since HTML 4.0. Obsolete syntax has been discarded, the separation
of content and presentation is essentially complete, and genuinely new
features are being introduced. XHTML 2.0 is intended to be more usable,
more accessible to different kinds of users and display devices, easier
to write by hand or with tools, and less reliant on embedded scripting
languages for commonly used functionality.
While it is impossible to predict at this point the degree of market
uptake that XHTML 2.0 will have, it is prudent to plan ahead for several
reasons. Although support of legacy HTML will probably be provided
forever for practical reasons (there is just too much Web out there to
convert it all), it is already possible to avoid most deprecated and
obsolete features in favor of version-neutral equivalents using HTML
and CSS facilities.
In addition, the ability to generate both old and new HTML from the same
XML foundation using XSLT will allow early adopters of XHTML 2.0 to offer
an enhanced user experience to early adopters of fully XHTML 2.0-aware
browsers. (The existence of cross-platform open-source browsers, plus
the presence of major browser companies on the WG, pretty well ensures
that at least some such browsers will in fact come into existence.)
The not-yet-complete XHTML 2.0 draft comprises almost 200 pages of
material. By taking this tutorial, you will have the major new and
deprecated features presented to you in easily digestible form. Although
this is not a tutorial on XForms or XEvents, since XHTML 2.0 uses
these existing W3C specifications, a basic introduction to them will
Lastly, because of its fully modular definition, it will be easy
to provide subsets of XHTML 2.0 for use within other document types
to provide rich textual annotations or embedded presentation-ready
material. This tutorial will clearly indicate the module boundaries and
suggest possible modules and sets of modules for adoption into other
Prerequisites: Understanding of XML, HTML 4.0. Understanding of XHTML 1.0,
1.1, and XHTML Modularization useful but not required.
Where the wombat has walked, John Cowan <email@example.com>
it will inevitably walk again. http://www.ccil.org/~cowan