Lists Home |
Date Index |
I've been meaning to post something like this to xml-dev for awhile, now.
XForms is probably a good data point to look at for XPath annotations, if
I'm not misunderstanding the discussion.
XForms is fully an XPath spec; brethren to XSLT and XPointer. As for
annotations, XForms defines "model item properties" , such as "required",
"relevant", "readonly", etc., which attach to the XPath 1.0 data model on a
per-node basis. Form controls, which also attach to a particular node, alter
their behavior based on the model item properties (which so far can all be
represented as strings) at that node.
From an implementation standpoint, it would be nice to have a way to attach
these extra properties to nodes.
From a standardization standpoint, it would be nice if XPath 2.0 included a
way to access these properties. (We avoided defining accessor functions in
XForms 1.0 because there are some non-trivial complications that can crop
up, related to self-referential calculations, but that's firmly an XForms
problem to solve)
We were mainly looking a function-based access, though I suspect that's just
because extension functions are easier to plug into an existing
implementation (compared to, say, a new axis)
From: Uche Ogbuji [mailto:firstname.lastname@example.org]
Sent: Sunday, October 06, 2002 9:33 AM
To: Jeni Tennison
Cc: Eric van der Vlist; email@example.com
Subject: [xml-dev] Annotations in XPath-NG? (Re: [xml-dev] XPath/XSLT
> > In an ideal world, XPath 1.0 could be one of these modules!
> Yes, or at least something that looks so darned close to XPath 1.0
> that no one would know the difference. I do think that the underlying
> data model from XPath 1.0 needs to change a little, to support a "type
> annotation" feature, make it closer to the Infoset and all that, but
> what I'd like is for it to be much more agnostic about where that
> typing information comes from and what the types are (the types are
> just labels).
I think one could imagine a lot of what would be added/tweaked in XPath 1.0
for a killer 2.0. I agree that an annotation system would be great for
2.0, and, in fact, Eric and I had been discussing how to add such a thing to
4Suite so we could implement some of the modular data typing straw men we've
My foirst comment is that it should be generic annotation, not just type
annotation. My thoughts would be:
Add an "annotation" property to each node. This is a simple key/value pair
where the key is URI (or is that anathema ;-) ) and the value is any XPath
1.0 object (which would even allow annotations to be cross-node links).
You can access any particular annotation for any particular XPath object
a function lookup(annoitation-key). Of course, some facilities, such as
optimizers, might use annotations behind the scenes, directly.
Does this sound like a good general approach?
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Apache 2.0 API -
Python&XML column: Tour of Python/XML -
Python/Web Services column: xmlrpclib -
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription