Subject: Re: [xsl] Matching a recursive local element structure From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx> Date: Fri, 4 Feb 2011 22:47:38 -0500 |
Yeah, still no joy from Sourceforge, yet. Can you summarize the algorithm you've got so far? -Brandon :) On Fri, Feb 4, 2011 at 8:27 PM, David Lee <dlee@xxxxxxxxxxx> wrote: > Everything is checked into sourceforge but its giving me network errors now > (under https://xmlsh.svn.sourceforge.net/svnroot/xmlsh/extensions/json, > This URl is giving me network errors > http://xmlsh.svn.sourceforge.net/viewvc/xmlsh/ > But I dont recommend it ... its quite complex and large. I'm not really > asking for people read or write this for me ... or analyze the code. > (if you did it would be awesome ! but its a challenging task) .. > The basic concept is I'm extracting from the XSD using Apache schema API a > 'minimal' description of the element structure, then using xquery attempting > to produce match expressions for each element (and attribute) declaration > and trying to avoid infinite recursion. Its amazingly non-trivial. > > Which is why I'm asking for is abstract ideas ... and of course willing to > accept abstract answers ... or none of course ... > I'm not asking for a solution just hoping maybe a suggestion on paths to > explore. > It just 'seems like its such an obvious problem' that people would have run > into it before and just know if off the top of their heads ... > I'm hoping there is a 'simple pattern' that match expressions might 'match > up' with XSD structures in an 'obvious' way ... > But alas I suspect that may be asking too much. > > My next thought is this might be best solved with a schema-aware xslt > expression, but in the general case these may not be types, just recursive > references. > > Recursion is fun ! > > > > ---------------------------------------- > David A. Lee > dlee@xxxxxxxxxxx > http://www.xmlsh.org > > > -----Original Message----- > From: Brandon Ibach [mailto:brandon.ibach@xxxxxxxxxxxxxxxxxxx] > Sent: Friday, February 04, 2011 8:14 PM > To: xsl-list > Subject: Re: [xsl] Matching a recursive local element structure > > > 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 | [xsl] Identity Transform with speci, Senthilukvelaan |
Month |