[
Lists Home |
Date Index |
Thread Index
]
Bullard, Claude L (Len) wrote:
> From: Rick Jelliffe [mailto:ricko@allette.com.au]
> At ISO DSDL, we have been sitting around waiting for someone to make
> up a small key/reference/integrity schema language that would
> allow validation and graph-building without requiring full XML Schemas
> validation. The absense of such a thing (e.g. something that
> could be used to create an ID list next to a DOM as a SAX insert)
> suggest either that it is not a pressing need, or that people
> are feckless and lazy, or that XML Schemas and Schematron are
> adequate, or that IDs are enough, or that the people that need
> extended references are using DBMS which already provide
> integrity checks and this is a requirement coming from
> people who want to ramp up "native" XML DBMS.
I think the need is pressing, but that most people have simply not
thought about generalizing this. Instead, they've added it to the
application that processes the document, which undoubtedly checks other
non-declarative constraints as well.
This would be a nice addition for native XML databases. As far as I
know, none enforce referential integrity at the moment, although you can
probably do it in a few of the databases via triggers.
I'll go out on a limb and say that I don't think that the language would
be that hard to design. XML Schemas already covers most of it with their
unique, key, keyref stuff. All you would need to do is generalize that
to cross schemas, which you could probably do by replacing the XPath
expressions with [IRI#]XPointer expressions, where the IRI gave the
namespace of the target schema if the pointer crosses documents.
(Question: Is it worth considering references in the case of schema-less
documents? If so, the IRI obviously can't point to a schema, but then
what does it point to? Perhaps just a well-defined IRI that say,
"Another document needed here?")
While this would cover things at the schema level, instance processors
which actually enforce integrity would need to know the location of the
target document(s) in the case of references that crossed schemas. Since
I have no grand ideas here, I'll take the cheap way out and say that
this is implementation specific :)
-- Ron
|