Why XML?

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. In fact, make(1) 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, both make 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. In make 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
Topic revision: r5 - 08 Jun 2003, WikiGuest
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email