Re: [xsl] Matching a recursive local element structure

Subject: Re: [xsl] Matching a recursive local element structure
From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 4 Feb 2011 20:14:13 -0500
Can we see the code you have so far?  It'd be a lot easier to address
specific issues in existing code than to philosophize about an
abstract approach.

-Brandon :)


On Fri, Feb 4, 2011 at 8:06 PM, David Lee <dlee@xxxxxxxxxxx> wrote:
> Thanks for the ideas (all!)
> Let me restate my question maybe it might lead to another idea  (I'm still
> floundering !)
>
> For every element declaration in an XSD I would like to generate a unique
> XSLT match expression that matches that element declaration (but no
others).
> I've got it working quite well for both global and local elements until I
> hit a recursive structure then well ... it recurses :)
>
> Thanks for any suggestions !
>
> I *feel* this should be solvable because while the structure are infinitely
> recursive, each level of the recursion matches the same element declaration
> so shouldnt have to be unrolled ... I just cant yet get my head around a
> match expression to catch it right.
>
> But maybe its not finitely solvable ?
>
>
>
> ----------------------------------------
> David A. Lee
> dlee@xxxxxxxxxxx
> http://www.xmlsh.org
>
>
> -----Original Message-----
> From: Brandon Ibach [mailto:brandon.ibach@xxxxxxxxxxxxxxxxxxx]
> Sent: Friday, February 04, 2011 7:44 PM
> To: xsl-list
> Subject: Re: [xsl] Matching a recursive local element structure
>
>
> Perhaps this approach is not as generic as you may have had in mind,
> but for this case, I think it would work.
>
> <template match=section/text//list/item[not(ancestor::subheading)] > 
>
> -Brandon :)
>
>
> On Fri, Feb 4, 2011 at 7:01 PM, David Lee <dlee@xxxxxxxxxxx> wrote:
>> Suppose I have a schema which describes a recursive structure as local
>> elements.
>> Example (pseudo DTD, and pseudo xml I can provide more formal defs if
> needed
>> )
>>
>> Element section  (text)*
>> Element text ( list | para | bold | #PCDATA )*
>> Element list ( item*)
>> Element item ( text | subheading ) *
>> Element subheading (text)*
>>
>> So for example doc may look like
>>
>> <section>
>>   <text>Text
>>       <list>
>>                       <item><para>Item Text</para></item>
>>                       <item><para>Item Text2</para></item>
>>                       <item><para>Item Text</para>
>>       <list><item><para>More text> </item></list></para></item>
>>                 </list>
>>    </text>
>> </section>
>>
>>
>> The key point is that the schema is recursive, so an xpath (or xslt match)
>> might be
>>
>>                 section/text
>>                 section/text/list/item/para
>>
>> section/text/list/item/list/item/list/item/list/item/list/item . Can get
>> really long here !!!!
>>
>>
>>
>> Now suppose I want to avoid an infinite number of XSLT match strings but I
>> want to match say list/item but ONLY within section/text
>> (presume there may be a different list/item locally defined within say
>> subheader)
>>
>>
>> Suggestions on to a good way to do that ?
>>
>> <template match=section/text//list/item > 
>>
>> But this might match
>>                 section/text/subheading/list/item
>> or
>>                 section/text/list/item/subheading/list/item
>>
>>
>> which I dont want.
>>
>> I only want to match the list/item which is a local element definition
>> below section  (recursively),.
>> so the match should select
>>                 section/text/list/item/list/item/list/item
>> but not
>>                 section/text/list/item/subheading/list/item
>>
>> ( which I would say match with
>>                 subheading/list/item
>>                 subheading/list/item/list/item
>> )
>>
>>
>> Is there an obvious way to do this ?
>> Its entirely possible that Im asking an impossible question (that is the
>> schemas may simply not allow this restriction in the first place),
>> But Im trying to solve a general problem so asking a general question.
>>
>> This is based on generating match strings from XSD element declarations so
>> its really a XSD question as well 
>> Maybe its impossible to describe a schema such that a descendant
> list/item
>> is distinguishable if its under section or subheading ?
>>
>> Thanks for any suggestion !
>>
>>
>> -David
>>
>> ----------------------------------------
>> David A. Lee
>> dlee@xxxxxxxxxxx
>> http://www.xmlsh.org
>>
>>
>>
>> ----------------------------------------
>> David A. Lee
>> dlee@xxxxxxxxxxx
>> http://www.xmlsh.org

Current Thread