OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
xpath problem


I have a xml file, simplified like this:


  <a id='a1'/>
  <a id='a2'/>
       <a id='55'/>
       <a id='66'/>
    <a id='a3'/>
    <a id='a4'/>
       <a-ref id-ref='a2'/>
       <a-ref id-ref='a4'/>
  <a id='a7'/>
  <a id='a8'/>



In this xml file, "a-ref/@id-ref" shoud reference a "a/@id" under its
"x" ascendant.

I wrote the xml schema grammar: the "a/@id" attributes are checked to
be unique within an "x" element, and the "a-ref/@id-ref" attributes
are checked to reference an existing "a/@id" attribute.

I have another constraint:  an "a-ref/@id-ref" may only reference a
"a/@id" node which appears before him, within its "x" ascendant.
The referenced "a" node should exist in its preceding-siblings, the
preceding-siblings of its parent, ... up to the "x" ascendant:

In other words, in the example, the first "a-ref" element should only
reference one of the following ids: a1, a2, a3, a4, but not 55 or 66,
a7 or a8.

In xslt-2, i can write a function which checks this rule, but i cannot
find a way to write it in a grammar.
I will need to use embedded shematron rules for other checks, but i
cannot find an xpath to check this rule.

I'm working with saxon9-ee edition.

Any idea on how to do that ?

Thanks for your replies
Vincent De Groote

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS