|
[background on xml] [alternative "representations" in lisp] |
This document is included with CL-XML as a placeholder for links to XML resources.
|
|
[Top] |
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] |
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] |