XCatalog

Sean Mc Grath digitome at iol.ie
Thu Mar 18 08:25:45 GMT 1999


>Don Park wrote:
>
>> You wrote a few days ago that you were abandoning XCatalog.
>
[John Cowan]
>More precisely:  I no longer think the XML syntax described in
>the XCatalog paper makes much sense.  The Socat subset is
>more interoperable and more sensible.
>
>The main reason is that it's unreasonable, IMHO, to ask a
>parser to recursively parse XML-XCatalog format while it's
>parsing some other document.  Socat format on the other hand
>is an easy hack.
>

An alternative might be to retain the XML syntax but
not use an XML parser to parse the syntax.
What I mean is that you could add application specific
rules about how the XML is laid out to make it
easily parsed with regexp yet retain the ability
to do a full parse for syntax/structure checking.
You would also retain the ability to manipulate
these catalogs with XML tools which is a good
thing:-) In particular your catalogs get
to live with your "documents" in your
document database and can be stored, chopped,
re-used and pretty printed using XML tools.

Saying that "the XML parser uses special parsing
logic for catalogs (oh, and by the way, they
are also XML files)" sounds better to me than
"the XML parse uses special parsing logic
for Socat catalogs (oh, and by the way, the
Socat parser is a one-off creation.")

<experience where="In the trenches">
Data structures have a tendancy to grow organically
over time. This is expecially true of succesful ones:-)
They start off with a small number of
syntactic constructs which are trivially parsed
but the parsing gets more difficult as new stuff
is added. Then comes the point where you say
"Gee, I wish I had stuck with XML..."
</experience>

<PythonSpecificHack>
An alternative to the "perfectly-good-XML-with-
DTD-but-parsed-with-regexp-to-avoid-chicken-and-egg"
would be a syntax like this:-

Maps = {
"foo" : "bar",
....
}

This appeals to the Python bigot in me because
it is easily parsed in any language you like,
but parsed and loaded into an in memory data
structure in one line of Python:-

	import Catalog.py

A similar line in bigotry can be followed
from other interpreted languages of course:-)
</PythonSpecificHack>

<Sean uri="http://www.digitome.com/sean.htm"/>



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list