JAXP Path 3.1 XPathVariable Resolver array vs sequence

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

JAXP Path 3.1 XPathVariable Resolver array vs sequence

Jorge Williams-2
Hello again,

I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?

Thanks,

-jOrGe W.

------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Michael Kay
The rules for converting Java types to XDM types are here

http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result

(the title of the section is more restrictive than the content).

This list indicates that there is no Java type where conversion produces an XDM array, other than the case

        • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.

which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.

Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?

(I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)

Michael Kay
Saxonica


> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>
> Hello again,
>
> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>
> Thanks,
>
> -jOrGe W.
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help



------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Jorge Williams-2
Thanks Michael,

Just to make sure I understand. What are the net.sf.saxon.om.Sequence types I should be targeting (AtomicArray?).

The issue with calling parse-json() is that I need to call multiple separate  XPaths with the same Map variables in succession and I’m concern around constantly re-parsing but I guess I’m preoptimizing since they’ll be conversion costs anyway(?)  

-jOrGe W.

> On Aug 19, 2016, at 3:26 AM, Michael Kay <[hidden email]> wrote:
>
> The rules for converting Java types to XDM types are here
>
> http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result
>
> (the title of the section is more restrictive than the content).
>
> This list indicates that there is no Java type where conversion produces an XDM array, other than the case
>
> • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.
>
> which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.
>
> Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?
>
> (I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)
>
> Michael Kay
> Saxonica
>
>
>> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>>
>> Hello again,
>>
>> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>>
>> Thanks,
>>
>> -jOrGe W.
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> saxon-help mailing list archived at http://saxon.markmail.org/
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help

------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Michael Kay

> On 19 Aug 2016, at 16:02, Jorge Williams <[hidden email]> wrote:
>
> Thanks Michael,
>
> Just to make sure I understand. What are the net.sf.saxon.om.Sequence types I should be targeting (AtomicArray?).

Well, the top level representing an XDM Array will be SimpleArrayItem. The members of an array can be any sequence, so it depends what's in your array; if the members of the array are maps then you would need to construct each map as an instance of HashTrieMap, so this isn't going to be easy. (Which is why I suggested the JSON parsing route)
>
> The issue with calling parse-json() is that I need to call multiple separate  XPaths with the same Map variables in succession and I’m concern around constantly re-parsing but I guess I’m preoptimizing since they’ll be conversion costs anyway(?)

Well, yes, there is always a cost in crossing the boundary between languages, and the more complex the data structures you want to pass across, the higher that cost is going to be.

It occurs to me that another way to construct an XDM array is with an XQuery that returns an array. But that begs the question of where the data is coming from in the first place.

Michael Kay
Saxonica

>  
>
> -jOrGe W.
>
>> On Aug 19, 2016, at 3:26 AM, Michael Kay <[hidden email]> wrote:
>>
>> The rules for converting Java types to XDM types are here
>>
>> http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result
>>
>> (the title of the section is more restrictive than the content).
>>
>> This list indicates that there is no Java type where conversion produces an XDM array, other than the case
>>
>> • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.
>>
>> which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.
>>
>> Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?
>>
>> (I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)
>>
>> Michael Kay
>> Saxonica
>>
>>
>>> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>>>
>>> Hello again,
>>>
>>> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>>>
>>> Thanks,
>>>
>>> -jOrGe W.
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>
>>
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> saxon-help mailing list archived at http://saxon.markmail.org/
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help



------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Jorge Williams-2
Okay thanks,

I’ll experiment…

… till then…

Feature Request : It would be great if we could efficiently / easily  pass JSON back and forth without having to re-parse. We use the Jackson library a lot and is well supported by tools that do JSON schema validation, etc. If you could support Jackson’s JsonNode object  directly that would be great, but really Maps and Array would work too maybe via an extension where we indicate that it should be interpreted as JSON.  Another thing to consider is that JavaEE has introduced the javax.json package so that could also work — although we don’t currently use it.  Using objects form a JSON package like Jackson or javax.json could be a good way to allow you to easily distinguish between a Sequence and an Array.

Thanks again,

-jOrGe W.



> On Aug 19, 2016, at 12:30 PM, Michael Kay <[hidden email]> wrote:
>
>>
>> On 19 Aug 2016, at 16:02, Jorge Williams <[hidden email]> wrote:
>>
>> Thanks Michael,
>>
>> Just to make sure I understand. What are the net.sf.saxon.om.Sequence types I should be targeting (AtomicArray?).
>
> Well, the top level representing an XDM Array will be SimpleArrayItem. The members of an array can be any sequence, so it depends what's in your array; if the members of the array are maps then you would need to construct each map as an instance of HashTrieMap, so this isn't going to be easy. (Which is why I suggested the JSON parsing route)
>>
>> The issue with calling parse-json() is that I need to call multiple separate  XPaths with the same Map variables in succession and I’m concern around constantly re-parsing but I guess I’m preoptimizing since they’ll be conversion costs anyway(?)
>
> Well, yes, there is always a cost in crossing the boundary between languages, and the more complex the data structures you want to pass across, the higher that cost is going to be.
>
> It occurs to me that another way to construct an XDM array is with an XQuery that returns an array. But that begs the question of where the data is coming from in the first place.
>
> Michael Kay
> Saxonica
>>
>>
>> -jOrGe W.
>>
>>> On Aug 19, 2016, at 3:26 AM, Michael Kay <[hidden email]> wrote:
>>>
>>> The rules for converting Java types to XDM types are here
>>>
>>> http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result
>>>
>>> (the title of the section is more restrictive than the content).
>>>
>>> This list indicates that there is no Java type where conversion produces an XDM array, other than the case
>>>
>>> • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.
>>>
>>> which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.
>>>
>>> Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?
>>>
>>> (I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)
>>>
>>> Michael Kay
>>> Saxonica
>>>
>>>
>>>> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>>>>
>>>> Hello again,
>>>>
>>>> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>>>>
>>>> Thanks,
>>>>
>>>> -jOrGe W.
>>>>
>>>> ------------------------------------------------------------------------------
>>>> _______________________________________________
>>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> saxon-help mailing list archived at http://saxon.markmail.org/
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help

------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Michael Kay
Interesting ideas. Dependencies on optional third-party packages are always best avoided from a complexity/support point of view, but Jackson is certainly widely used.

The thing I'm currently working on is establishing XdmMap and XdmArray objects at the s9api level.

Generally I think the way forward for conversion of Java types to XDM types is to make the conversion more explicit and under user control, rather than converting whatever is handed over to the nearest available type, so if you want to return a Java map and have it treated as an XDM map, then you should explicitly indicate this e.g. by passing new XdmMap(myJavaMap).

Michael Kay
Saxonica

> On 19 Aug 2016, at 19:35, Jorge Williams <[hidden email]> wrote:
>
> Okay thanks,
>
> I’ll experiment…
>
> … till then…
>
> Feature Request : It would be great if we could efficiently / easily  pass JSON back and forth without having to re-parse. We use the Jackson library a lot and is well supported by tools that do JSON schema validation, etc. If you could support Jackson’s JsonNode object  directly that would be great, but really Maps and Array would work too maybe via an extension where we indicate that it should be interpreted as JSON.  Another thing to consider is that JavaEE has introduced the javax.json package so that could also work — although we don’t currently use it.  Using objects form a JSON package like Jackson or javax.json could be a good way to allow you to easily distinguish between a Sequence and an Array.
>
> Thanks again,
>
> -jOrGe W.
>
>
>
>> On Aug 19, 2016, at 12:30 PM, Michael Kay <[hidden email]> wrote:
>>
>>>
>>> On 19 Aug 2016, at 16:02, Jorge Williams <[hidden email]> wrote:
>>>
>>> Thanks Michael,
>>>
>>> Just to make sure I understand. What are the net.sf.saxon.om.Sequence types I should be targeting (AtomicArray?).
>>
>> Well, the top level representing an XDM Array will be SimpleArrayItem. The members of an array can be any sequence, so it depends what's in your array; if the members of the array are maps then you would need to construct each map as an instance of HashTrieMap, so this isn't going to be easy. (Which is why I suggested the JSON parsing route)
>>>
>>> The issue with calling parse-json() is that I need to call multiple separate  XPaths with the same Map variables in succession and I’m concern around constantly re-parsing but I guess I’m preoptimizing since they’ll be conversion costs anyway(?)
>>
>> Well, yes, there is always a cost in crossing the boundary between languages, and the more complex the data structures you want to pass across, the higher that cost is going to be.
>>
>> It occurs to me that another way to construct an XDM array is with an XQuery that returns an array. But that begs the question of where the data is coming from in the first place.
>>
>> Michael Kay
>> Saxonica
>>>
>>>
>>> -jOrGe W.
>>>
>>>> On Aug 19, 2016, at 3:26 AM, Michael Kay <[hidden email]> wrote:
>>>>
>>>> The rules for converting Java types to XDM types are here
>>>>
>>>> http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result
>>>>
>>>> (the title of the section is more restrictive than the content).
>>>>
>>>> This list indicates that there is no Java type where conversion produces an XDM array, other than the case
>>>>
>>>> • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.
>>>>
>>>> which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.
>>>>
>>>> Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?
>>>>
>>>> (I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)
>>>>
>>>> Michael Kay
>>>> Saxonica
>>>>
>>>>
>>>>> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>>>>>
>>>>> Hello again,
>>>>>
>>>>> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -jOrGe W.
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> _______________________________________________
>>>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>>>> [hidden email]
>>>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> _______________________________________________
>>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>
>>
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> saxon-help mailing list archived at http://saxon.markmail.org/
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help



------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help 
Reply | Threaded
Open this post in threaded view
|

Re: JAXP Path 3.1 XPathVariable Resolver array vs sequence

Jorge Williams-2
Makes sense.

Thanks!

-jOrGe W.

________________________________________
From: Michael Kay <[hidden email]>
Sent: Friday, August 19, 2016 5:44 PM
To: Mailing list for the SAXON XSLT and XQuery processor
Subject: Re: [saxon] JAXP Path 3.1 XPathVariable Resolver array vs sequence

Interesting ideas. Dependencies on optional third-party packages are always best avoided from a complexity/support point of view, but Jackson is certainly widely used.

The thing I'm currently working on is establishing XdmMap and XdmArray objects at the s9api level.

Generally I think the way forward for conversion of Java types to XDM types is to make the conversion more explicit and under user control, rather than converting whatever is handed over to the nearest available type, so if you want to return a Java map and have it treated as an XDM map, then you should explicitly indicate this e.g. by passing new XdmMap(myJavaMap).

Michael Kay
Saxonica

> On 19 Aug 2016, at 19:35, Jorge Williams <[hidden email]> wrote:
>
> Okay thanks,
>
> I’ll experiment…
>
> … till then…
>
> Feature Request : It would be great if we could efficiently / easily  pass JSON back and forth without having to re-parse. We use the Jackson library a lot and is well supported by tools that do JSON schema validation, etc. If you could support Jackson’s JsonNode object  directly that would be great, but really Maps and Array would work too maybe via an extension where we indicate that it should be interpreted as JSON.  Another thing to consider is that JavaEE has introduced the javax.json package so that could also work — although we don’t currently use it.  Using objects form a JSON package like Jackson or javax.json could be a good way to allow you to easily distinguish between a Sequence and an Array.
>
> Thanks again,
>
> -jOrGe W.
>
>
>
>> On Aug 19, 2016, at 12:30 PM, Michael Kay <[hidden email]> wrote:
>>
>>>
>>> On 19 Aug 2016, at 16:02, Jorge Williams <[hidden email]> wrote:
>>>
>>> Thanks Michael,
>>>
>>> Just to make sure I understand. What are the net.sf.saxon.om.Sequence types I should be targeting (AtomicArray?).
>>
>> Well, the top level representing an XDM Array will be SimpleArrayItem. The members of an array can be any sequence, so it depends what's in your array; if the members of the array are maps then you would need to construct each map as an instance of HashTrieMap, so this isn't going to be easy. (Which is why I suggested the JSON parsing route)
>>>
>>> The issue with calling parse-json() is that I need to call multiple separate  XPaths with the same Map variables in succession and I’m concern around constantly re-parsing but I guess I’m preoptimizing since they’ll be conversion costs anyway(?)
>>
>> Well, yes, there is always a cost in crossing the boundary between languages, and the more complex the data structures you want to pass across, the higher that cost is going to be.
>>
>> It occurs to me that another way to construct an XDM array is with an XQuery that returns an array. But that begs the question of where the data is coming from in the first place.
>>
>> Michael Kay
>> Saxonica
>>>
>>>
>>> -jOrGe W.
>>>
>>>> On Aug 19, 2016, at 3:26 AM, Michael Kay <[hidden email]> wrote:
>>>>
>>>> The rules for converting Java types to XDM types are here
>>>>
>>>> http://www.saxonica.com/documentation/index.html#!extensibility/functions/function-result
>>>>
>>>> (the title of the section is more restrictive than the content).
>>>>
>>>> This list indicates that there is no Java type where conversion produces an XDM array, other than the case
>>>>
>>>>    • If the returned value is an instance of the Saxon class net.sf.saxon.om.Sequence, the returned value is used unchanged.
>>>>
>>>> which basically means you have to construct it yourself as an instance of net.sf.saxon.ma.arrays.SimpleArrayItem.
>>>>
>>>> Wouldn't you be better off passing the JSON as a string, and then using parse-json() on the receiving end?
>>>>
>>>> (I seem to recall that at some stage the conversion of supplied parameters was guided by the required XDM type as well as the supplied Java class, but this appears to be no longer the case. It would make the rules even more complicated.)
>>>>
>>>> Michael Kay
>>>> Saxonica
>>>>
>>>>
>>>>> On 19 Aug 2016, at 08:42, Jorge Williams <[hidden email]> wrote:
>>>>>
>>>>> Hello again,
>>>>>
>>>>> I’m trying to pass an array as a variable using an xpath variable resolver with XPath 3.1 JAXP interface. I’ve experimented with java Lists and Arrays, and they always seem to be interpreted as sequences.  Is there a way to explicitly pass something as an array rather than a sequence?  I ask because I’m actually trying to pass JSON on the Java side…the library I’m using (Jackson) can convert JSON into java  Maps and Lists with appropriate primitive types. Is there a better way of passing JSON through as a variable?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -jOrGe W.
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> _______________________________________________
>>>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>>>> [hidden email]
>>>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> _______________________________________________
>>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________
>>> saxon-help mailing list archived at http://saxon.markmail.org/
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>>
>>
>>
>> ------------------------------------------------------------------------------
>> _______________________________________________
>> saxon-help mailing list archived at http://saxon.markmail.org/
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/saxon-help
>
> ------------------------------------------------------------------------------
> _______________________________________________
> saxon-help mailing list archived at http://saxon.markmail.org/
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/saxon-help



------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help

------------------------------------------------------------------------------
_______________________________________________
saxon-help mailing list archived at http://saxon.markmail.org/
[hidden email]
https://lists.sourceforge.net/lists/listinfo/saxon-help