Data manipulation languages for XML (was Query Languages ...)
Richard Light
richard at light.demon.co.uk
Tue Nov 18 08:18:02 GMT 1997
In message <3.0.32.19971117115001.00bc8a74 at swbell.net>, "W. Eliot
Kimber" <eliot at isogen.com> writes
>>[Joe Lapp:]
>>I think I've just discovered that we are both arguing for the same
>>thing. My point is exactly that the _document_ is not the smallest
>>unit we care to change. I just meant to point out that because we
>>care for finer granularity, and because currently no standard exists
>>for updating at arbitrary granularity, we need a standard.
>
>A standard *does* exist for defining the objects you might want to update:
>the SGML property set (possibly reflected through the DOM). Given this
>definition, defining operations on it is a simple matter of programming.
>
>Or said another way, you don't need a standard for the control language
>(although it's useful to have one) if you have a standard for the data
>model to be controlled.
Said another way again: since we have a good, conceptually clear
standard for describing the objects we want to update, we are well-
placed to 'go the extra mile' and define a standard for updating those
objects.
May we return to SQL, as a precedent for the type of language Joe was
originally asking about? SQL's primary purpose is to support the use
and updating, of distributed database information, by multiple users, in
real time. Surely that is a reasonable expectation for XML information,
too?
If so, we need mechanisms to specify changes to existing documents. I
don't really buy the model that says that every change to an XML
document produces a completely new document. You will certainly have a
hard time selling that idea to an end-user who changes one word in a
document, or to a database vendor who has to take back the complete
document and work out for themselves what (if anything) has changed, in
order to update the relevant nodes.
Also, in the real world you need access control (c.f. GRANT in SQL).
The very nature of XML documents means that this control needs to be at
the node rather than the document level, if only to deal with entities.
Also, you need to know which parts of the document you are allowed to
change as you start editing - it is not good enough to be told some time
afterwards that certain changes should not have been made!
I agree that you can perfectly well define changes to an XML document
via its representation as a grove, but this grove needs to be linked
back to the physical objects that gave rise to it. For example, if you
edit a phrase that happens to be within an entity that is referenced
more than once within the document you are editing, then perform an
UPDATE, in principle _all_ references to that entity should be updated.
Richard Light.
Richard Light
SGML/XML and Museum Information Consultancy
richard at light.demon.co.uk
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/
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