On Wed, 4 Jul 2001, Gary L Peskin wrote:

>Nikolaos --
>
>First, since this is not a Xalan-specific question, you'd probably get a
>faster response from the Mulberry list.

sorry!

>
>Second, I'm pretty confused about what you're trying to do.  I
>understand the first example, but why should the first <C/> element
>-not- be selected in the second example?  It is a "C element that comes
>after A and has a D parent".

let's say that the Cs that must not be selected have different types.
Since the scopes of the corresponding schema definitions would be
different, one would possibly like to have the Cs that come with
xsd:string type and not those with xsd:integer for instance.



>
>Gary
>
>Nikolaos Giannadakis wrote:
>>
>> Dear All,
>>
>> Can you tell what the XPath expression that:
>> "selects all C elements that come after A and have a D parent" is.
>>
>> That is, there might be a schema, which declares the unwanted instances of C
>> as integers, while
>> the other C declared has some anonymous complexType.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <A>
>>         <B>
>>                 <C/>                                            <!-- DO NOT select 
>this -->
>>                 <D>
>>                         <!-- recursion is introduced here -->
>>                         <C>                                     <!-- select this -->
>>                                 <B>
>>                                         <C/>                    <!-- DO NOT select 
>this -->
>>                                         <D>
>>                                                 <C/>            <!-- select this -->
>>                                         </D>
>>                                 </B>
>>                         </C>
>>                 </D>
>>         </B>
>> </A>
>>
>> /A//D/C (/A/descendant::D/C) would suffice, or, better, /A//B/D/C
>> (/A/descendant::B/D/C). But this would not rule out the possibility of the
>> B/D/C pattern appearing somewhere after A in another context. I cannot find
>> any XPath feature that would handle recursion.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <A>
>>         <B>
>>                 <F>
>>                         <B>
>>                                 <D>
>>                                         <C/>                    <!-- this would be 
>selected incorrectly -->
>>                                 </D>
>>                         </B>
>>                 </F>
>>                 <D>
>>                         <!-- recursion is introduced here -->
>>                         <C>                                     <!-- select this -->
>>                                 <B>
>>                                         <C/>                    <!-- DO NOT select 
>this -->
>>                                         <D>
>>                                                 <C/>            <!-- select this -->
>>                                         </D>
>>                                 </B>
>>                         </C>
>>                 </D>
>>         </B>
>> </A>
>>
>> Using /A/B/D/C | /A/B/D/C//B/D/C would overcome this, but you can see how I
>> could create another problematic example...
>> How does one find one's way around this, using a generic XPath approach?
>> I am not saying this is good XML design. To the contrary! ... it is legal,
>> nonetheless ...any ideas?
>>
>> regards,
>>
>> nikolas/
>

Reply via email to