Subject: Limitations of Includes in XSL From: Ken Burnside <Ken.Burnside@xxxxxxxxxxxxxxxxxx> Date: Tue, 25 Apr 2000 13:52:15 -0500 |
My thanks in advance for your time. This is lengthy -- if you don't want to deal with xsl:include, feel free to move on to the next message now. I'm currently the XSL stylist at the State of Wisconsin Circuit Court Automation Project, and our project involves using XSL stylesheets to transform data extracted from a database in XML into formatted objects, which are then transformed into the final output the user requested (Paper, HTML, PDF) We have a lot of very common stylistic blocks that we use, as many of the forms we're replicating pull common elements -- lists of charges, attorney names, plaintiff names -- that are all pulled by queries from the database. What I've been trying to do is a trick I've used as a web developer -- the metaphorical equivilant of server side includes in the XSL file. Rather than cut and paste a filing and disposition control table like this (Warning -- long code block that probably doesn't have enough space for its indents...) ===== <!-- This table handles the filing and disposition information. --> <fo:table> <!-- Five Columns. Rows determined by "next action" loop. --> <!-- Define columns widths here. No rows or spans yet. --> <fo:table-column column-width="1.75in"/> <fo:table-column column-width="1.75in"/> <fo:table-column column-width="1.75in"/> <fo:table-column column-width="1.5in"/> <fo:table-column column-width="1.25in"/> <fo:table-body font-size="9pt" font-family="sans-serif" color="black"> <!-- 1st Row Starts Here. --> <fo:table-row line-height="10pt" font-weight="bold"> <!-- 1st Column Starts Here. --> <fo:table-cell> <fo:block>Filing Date/C.O.</fo:block> </fo:table-cell> <!-- 2nd Column Starts Here. --> <fo:table-cell> <fo:block>Disposition Date/C.O.</fo:block> </fo:table-cell> <!-- 3rd Column Starts Here. --> <fo:table-cell> <fo:block>District Attorney</fo:block> </fo:table-cell> </fo:table-row> <!-- Second Row Starts Here --> <fo:table-row> <!-- 1st Column Starts Here. Filing date, and court officer. --> <fo:table-cell> <fo:block> <xsl:value-of select="/TR-300/FilingDispoRPQ/filingDate"/> </fo:block> <fo:block> <fo:inline-sequence> <xsl:value-of select="/TR-300/FilingDispoRPQ/filingNameF"/> <fo:inline-sequence color="white">.</fo:inline-sequence> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> from XSL file to XSL file. Obviously, much was elided from the sample above, but the table is easily 60 lines of code, that's replicated through 90% of what I'm working on. I'd prefer to put it as a separate file, and call it as such: <xsl:include href="filingAndDispo.xsl"> I'm running into two problems: 1) The XML parser (FOP) says that I cannot use an include inside of a template. I'm trying to see if I can summon the include outside the template and call the results from within it, but I confess to floundering a lot. 2) The other issue I'm running into is passing the appropriate root document to the XSL widget that's called by the include. For example: The whole form processes TR-300.xml. The widget processes the ChargeListRSQ block of code, and the attributes of the tags inside of it. Since the widget needs to look for the ChargeListRSQ block in any XML file, it can't reference TR-300.xml directly. Since the include cannot be inside of the <xsl:template> element, the obvious path of inheritance doesn't work. Is there any other way to specify "Look at this document" in the XSL file, while, in turn, having the generic widget not care what the document is (getting it from the statement above), and look for the attributes referenced in the included file. Has anyone succeeded in doing this? XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: SAXON 5.3.1 is available, Steve Muench | Thread | Re: Limitations of Includes in XSL, G. Ken Holman |
RE: How to stream HTML tags include, Medina, Edward | Date | Bolded Text in an <fo:block>, scott . wright |
Month |