Hello xsl-list,
Thank you WP, VC and DP for the correspondence
WP I did try white-space="pre" linefeed-treatment="preserve" no joy, will
be researching http://www.zvon.org
DP (At the learning stage I did buy a copy of your book, and useful it was
to.)
AS REQUESTED MORE DETAIL
I am reverse engineering SQL Server 2000 databases
This bit deals with captured Stored Procedures
BELOW 1 Is how a captured stored procedure appears in the xml document
(viewed in XML Spy ).
Note: The code for the stored procedure is put in a CDATA
<code>code<![CDATA[ ...]]></code>
BELOW 2 Is how it is rendered in PDF (using xsl:fo and apache fop)
This is the template used: 4th line up from bottom
<fo:block ><xsl:value-of
select="./code"/></fo:block>
<xsl:template match="stored-proc" mode="proc">
<!-- List of stored procedures in database. -->
<fo:page-sequence master-reference="odd">
<fo:static-content flow-name="odd-before">
<fo:block xsl:use-attribute-sets="a-running"><xsl:value-of
select="//@project-name"/></fo:block>
<fo:block xsl:use-attribute-sets="b-running"><xsl:value-of
select="//@rdbms-name"/><xsl:text> version </xsl:text><xsl:value-of
select="//@rdbms-version"/></fo:block>
</fo:static-content>
<!--date and page number footer -->
<fo:static-content flow-name="odd-after">
<fo:block xsl:use-attribute-sets="a-running" >
<fo:inline><xsl:value-of select="@date-asat" />
<fo:leader leader-pattern="space" leader-length="30%" />
<xsl:text>Page - </xsl:text><fo:page-number/>
<fo:leader leader-pattern="space" leader-length="30%" />
</fo:inline >
</fo:block>
</fo:static-content>
<fo:flow flow-name="odd-body">
<fo:block xsl:use-attribute-sets="c-head">
<xsl:text>Source code for: </xsl:text><xsl:value-of
select="./sp-name"/>
</fo:block>
<fo:block ><xsl:value-of select="./code"/></fo:block>
</fo:flow>
</fo:page-sequence>
</xsl:template>
---- BELOW 1 ---- Captured Stored Procedure -------
<stored-proc date-created="2003-09-05T13:08:37" sp-owner="dbo">
<sp-name>uspConstantBuildTaxa</sp-name>
<code>code<![CDATA[
CREATE Procedure uspConstantBuildTaxa (
@constantid int
)
AS
SET NOCOUNT ON
DECLARE @Level int
Create TABLE #stack (
constantid int,
[Level] int
)
SELECT @Level=1
INSERT INTO #stack SELECT constantid, 1 FROM Constant WHERE
constantid=(_at_)constantid
WHILE @Level > 0 BEGIN
if EXISTS (SELECT * FROM #stack WHERE [Level] = @Level) BEGIN
SELECT TOP 1 @constantid=constantid FROM #stack WHERE [Level]=(_at_)Level
ORDER BY constantid
DELETE FROM ConstantTaxa WHERE constantid=(_at_)constantid
INSERT INTO ConstantTaxa
SELECT C.constantid,
IsNull(P.[Level],0)+1,
IsNull(P.Taxa,'.' )+CAST(C.constantid AS
nvarchar(15))+'.'
FROM Constant AS C LEFT OUTER JOIN ConstantTaxa AS P
ON C.TaxonID=P.constantid
WHERE @constantid=C.constantid
DELETE FROM #stack WHERE constantid=(_at_)constantid
INSERT #stack
SELECT constantid, @LEVEL+1 FROM Constant
WHERE TaxonID=(_at_)constantid
If @@ROWCount > 0
SELECT @Level=(_at_)Level+1
END ELSE
SELECT @Level=(_at_)Level-1
END
SET NoCount OFF
GO
]]></code>
</stored-proc>
---- BELOW 2 ---- Stored Procedure rendered in PDF -------
Source code for: uspConstantBuildTaxa
code CREATE Procedure uspConstantBuildTaxa ( @constantid int ) AS SET NOCOUNT ON
DECLARE @Level int Create TABLE #stack ( constantid int, [Level] int ) SELECT
@Level=1
INSERT INTO #stack SELECT constantid, 1 FROM Constant WHERE
constantid=(_at_)constantid
WHILE @Level > 0 BEGIN if EXISTS (SELECT * FROM #stack WHERE [Level] = @Level)
BEGIN
SELECT TOP 1 @constantid=constantid FROM #stack WHERE [Level]=(_at_)Level ORDER
BY
constantid DELETE FROM ConstantTaxa WHERE constantid=(_at_)constantid INSERT
INTO
ConstantTaxa SELECT C.constantid, IsNull(P.[Level],0)+1, IsNull(P.Taxa,'.'
)+CAST(C.constantid
AS nvarchar(15))+'.' FROM Constant AS C LEFT OUTER JOIN ConstantTaxa AS P ON
C.TaxonID=P.constantid WHERE @constantid=C.constantid DELETE FROM #stack WHERE
constantid=(_at_)constantid INSERT #stack SELECT constantid, @LEVEL+1 FROM
Constant
WHERE TaxonID=(_at_)constantid If @@ROWCount > 0 SELECT @Level=(_at_)Level+1
END ELSE
SELECT @Level=(_at_)Level-1 END SET NoCount OFF GO
--
Best regards,
Arthur mailto:ArthurMaloney(_at_)seipas(_dot_)com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list