Re: Access to Schema API information

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
Saxonica
>
> 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
>    http://www.ltg.ed.ac.uk/~ht/Extreme_2003.html
>
> ht

Received on Tuesday, 22 May 2012 10:29:10 UTC