[background on xml] [alternative "representations" in lisp]


This document is included with CL-XML as a placeholder for links to XML resources.

[Top]

A bit of background on XML

There is a wealth of information available on-line about XML One might start with one of the following:

XML is a notation for storing, retrieving, and, in general, communicating data in a "self-describing" serialized form. It is a syntax to "mark up" text-encoded data. The encoding uses annotated, or attributed tags to denote sequence and containment relations among data. Each application is free to define its own tags and relations as a document type. XML is proposed, in particular, as a notation for data to be exchanged between HTTP clients and servers (or, more accurately among any processes capable of operating with URL-specified data resources). To quote the original standard

"The Extensible Markup Language (XML) is a simple dialect of SGML.... The goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML."

There is now even a form of HTML ( XHTML ) which is a direct implementation of XML. A definition is, however, optional and documents are also permitted, which have no definition, so long as all elements are marked with matching open and close tags or with an empty tag, and so long as containment relations are unambiguous.

One might, for example, express the most trivial of relations from the lisp domain as the following XML document:

<cons><car>first</car><cdr>rest</cdr></cons>

The following, also trivial, HTML document, would also be a legitimate XML document:

<html>
 <head><title>A Title</title></head>
 <body>greetings in xml</body>
 </html>

In addition to the encoded content proper, in order to remain in accord with the various anscilliary standards, a documents likely includes a certain amount of "commentary":

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head><title>A Title</title></head>
   <body>greetings in xml</body>
 </html>

One of the purposes for these additions, is to incorporate "meta"-data into the document by reference. The DOCTYPE form, for example, specifies the name and location of a "document type definition" which, in turn, describes the forms a valid document must follow. The xmlns attribute, for example, designates the "namespace" in which all unprefixed element names reside.

XML is embodied in meriad proposals from the world-wide-web consortion, the internet engineering task force and the international standards organization. the consitiute a vast bidy of technical notes concerning the representation, communication and manipulation of "document objects".

In terms useful for the LISP developer, this means that an XML-serialization interface suffices to communicate data with any and all of


[Top]

what about other "representations"

the lisp world is at no loss for alternatives to serialize data or otherwise represent it external to a lisp process. the lisp standard includes at least two means (reader macros and load forms) which can be used to serialize data for archival or to pass it to another process. with suitable meta-object support, the necessary definitions can be specified as an aspect of class definition.

the lisp application community has also been at no loss to develop representations for data and for data manipulation. in most cases (for example, KIF) the standard incorporates the standard lisp reader and thereby depends on equivalent runtime support among a communicating processes. such standards also extend well beyond the scope of xml, to specify protocols for application-level data-exchange and to specify mechanisms for interpreting messages.

xml, on the other hand, is strictly a convention for encoding. it plays a role analogous to the #(structure-type slot-name slot-value), and could be substituted for it in applications which share data with foreign application environments. as an encoding, xml does not concern protocol questions, which, in the case of a presentation protocol, are relegated to the application domain, and in the case of transport protocols are left to an underlying transport layer. for the latter, http is the likely dominant protocol.for the former, remember "it's not a language, it's an encoding": semantic issues are also left entirely to the application, whereby a number of "standardized" applications are being discussed. (see the various w3c submissions and reports.)

[Top]


references
On the matter of "languageW, "encoding", and "notation" see please "A Theory of Semiotics", Eco, Indiana university press, 1979. in particular p. 38, the discussion of s-codes. The XML standard itself is mostly restricted to specifing a notation for encoding, rather than an encoding. Encoding specifications are prodiced for document type definitions only. The XML-Names recommendation goeas a step further, where it specifies aspects of a sematics and encoding for universal names.
The OASIS confrmance suite, in the version 20010315 was used for confrmance testing.
(SOAP) The recommendation is available from the w3 consortion.
(XHTML) The recommendation is available from the w3 consortion.
(XMLINFO): The XML Infoset specifies the terms of an abstract model for the content of a document. This model, in the concrete form of the XML Query Data Model, serves as the input for XML Query and XML Path operations.
(XML): The XML standard specifies the code used to serialize data models as well as the groundrules for document and processor conformance. It also specifies validation criteria, but is restricted to namespace-neutral encodings.
(XML-NAMES): The provisions for encoding articulate names in XML describes how to treat the document entity. There is no ratified specification for DTD treatment.
(XPATH) The XML Path Language provides a syntax and semantics for expressions which address parts of an XML document. XPath expressions are incorporated in the XML Query Language to select document components as query operands.
(XQDM): The XML Query Data Model is "the foundation for the W3C XML Query Algebra... The XML Query Data Model defines formally the information contained in the input to an XML Query processor."
(XQUERY): The XML Query endeavour comprises two efforts: an XML Query Algebra and an XML Query Language. The former describes the abstract semantics of query operations against a data model. The latter specifies a concrete language for query expressions and their interpretation in terms of the query algebra.
(XSL): The original technical note is available from the w3 consortium or, in the 27.08.97 version, with the cl-http release.

[Top]

© setf.de 2001