Re: Overlapping structures
Suart, I only have time for a brief note (major analysis due out later today) but you might want to take a look at: http://www.sbl-site2.org/Extreme2001 There you will find the presentation (and paper, other resources) that Matthew O'Donnell and I did at the Extreme Markup Languages Conference (Montreal 2001) on implementing concur in XML. Uses XSLT for building the concurrent markup file, allows authoring of concurrent structures in simple text/XML editors, etc. This is very much an in progress effort, we are starting to work on visualization of overlapping structures. The paper (also at the site) notes several other areas of ongoing research and development. Hope this helps! Patrick Stuart Brown wrote: > > I have an XML document with two overlapping structures. To get round this, > for one of the structures I use empty "start" and "end" tags as follows: > > <a>I said <z.start/>I will watch my ways</a> > <a><x/>and keep my tongue from sin<z.end/></a> > > In my XSL I want to test, from any node <z.start/> if there is the > additional empty element <x/> before the next <z.end/> (i.e. if the > imaginary "z" element "contains" x). I have not found any way I can achieve > this -- any pointers please? > > Secondly, if I want to invert the structures, so that the "a" tags become > the imaginary empty tags and the z tags "real" elements, I am currently > cheating to overcome the well-formed constraint as follows (ignoring the x > element above): > > <xsl:template match="a"> > <a.start/><xsl:apply-templates/><a.end/> > </xsl:template> > > <xsl:template match="z.start"> > <z>!!DELETE_CLOSE_TAG</z> > </xsl:template> > > <xsl:template match="z.end"> > <z>!!DELETE_OPEN_TAG</z> > </xsl:template> > > thus generating: > > <a.start/>I said <z>!!DELETE_CLOSE_TAG</z>I will watch my ways<a.end/> > <a.start/>and keep my tongue from sin<z>!!DELETE_OPEN_TAG</z><a.end/> > > and then running a simple Perl script to get rid of the unwanted tags amd > text to result in: > > <a.start/>I said <z>I will watch my ways<a.end/> > <a.start/>and keep my tongue from sin</z><a.end/> > > However, I would far rather handle this entirely within the XSL stylesheet. > Is there any way I can cheat using CDATA sections to overcome the > well-formed constraint and directly match <z> to <z.start/> and </z> to > <z.end/>? > > Thanks, > > Stuart > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list -- Patrick Durusau Director of Research and Development Society of Biblical Literature pdurusau@xxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format