The first thing that should be emphasized about Meta's use of XML
(or any other data representation language)
is that "mortals" (i.e., uninterested parties)
need not be aware of its use.
Thus, XML files do not need to be seen by ordinary users,
any more than makefiles are in the FreeBSD Ports Collection.
Nor would developers be required to interact directly with XML files.
Either a forms-based interface or a "little language"
could be used to capture and/or edit the information.
The useful characteristics of XML
(e.g., strict declarative syntax, tight yet extensible definitions)
help to enforce a level of discipline
and thereby maintain Meta's portability and robustness.
In addition, the current work on
XSL (Extensible Stylesheet Language; http://www.w3.org/Style/XSL
and XSLT (XSL Transformations; http://www.w3.org/TR/xslt
promises to yield powerful tools for data transformation.
XML is a well-defined and increasingly popular standard
for publishing computer-and human-readable documents.
Notably, several major OpenSource projects have committed
to adopting the DocBook DTD
(an XML-based format which is optimized for technical documentation).
The definition of the term "publishing", however,
deserves a closer look.
There is little essential difference
between formatting a set of documents
(e.g., using LaTeX, TeX, and PostScript)
and building a binary package or software distribution.
is commonly employed in both tasks.
By the same token, XML "style sheets"
can be used to define many processes
(e.g., acquisition, building, installation)
that are needed to maintain operating system software.
By defining data types,
and XML enable a variety of data transformations.
Saying that a piece of text is a heading
and saying that a file contains C source code (or a JPEG image)
are both examples of this.
files, however, many of the transformations are "hard coded".
This "early binding" can detract greatly
from the flexibility and portability of makefiles.
XML documents, in contrast,
do not specify the exact nature of their data types,
let alone the types of transformations to be performed.
Similarly, style sheets are decoupled
from the implementation details of transformations.
Much of the information which allows a set of files
to be compiled, linked, and packaged
could be used to generate an indexed hypertext version
of the source code.
Fold in the documentation
(using appropriate formatting tools)
and you are well on the way to a Meta implementation.
-- Main.RichMorin - 16 Jun 2003