Altova Mailing List Archives

Re: Access to Schema API information

From: Michael Kay <mike@--------.--->
To: "Henry S. Thompson" <ht@---.--.--.-->
Date: 5/22/2012 12:08:00 PM

On 22/05/2012 11:06, Henry S. Thompson wrote:
> Michael Kay writes:
>> I have been implementing a Saxon extension that exposes the Schema
>> Component Model to XSLT and XQuery applications
> Using functions is cool, but did you consider sticking with XPath?
It does stick with XPath, only it's XPath 3.0...

I think that attempts to model this information using elements and 
attributes suffer two main problems:

(a) the node identity problem. It's hard to get away from the fact that 
elements have identity, and if elements have identity and model schema 
components then there is a strong expectation that node identity 
reflects component identity, which (a) doesn't reflect the semantics of 
the model (which explicitly leaves identity undefined), and (b) makes a 
lazy implementation difficult.

(b) the network modelling problem: the schema component model is a 
network, while XML is best at modelling trees. Any attempt to model a 
graph in XML leads to (a) to arbitrary decisions about which 
relationships to model as XML parent/child relationships, and (b) very 
clumsy navigation when you have to follow the non-hierarchic links.

Using a functional model of the information neatly bypasses both these 
issues. Functions in the XPath 3.0 model have no identity, so there is 
no way of asking, for example whether two facets with the same 
properties are "the same facet". All navigation is done using function 
calls so there is no asymmetry between relationships "within the 
hierarchy" and relationships "across the hierarchy".

Michael Kay
> See an old Extreme paper for some work we did in Edinburgh along those
> lines a long time back now:
>    Uniform access to infosets via reflection
>    Extreme Markup Languages 2003
> ht


These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.