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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Matching a recursive loca, David Lee | Thread | RE: [xsl] Matching a recursive loca, David Lee |
RE: [xsl] Matching a recursive loca, David Lee | Date | RE: [xsl] Matching a recursive loca, David Lee |
Month |