RE: [xsl] Loss of white space

Subject: RE: [xsl] Loss of white space
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 08 Sep 2003 12:30:48 -0400
Arthur,

If you tell us which FO formatter you're using, someone might be able to suggest whether/if there's a wrinkle that bears on your requirement to preserve white space....

Cheers,
Wendell

At 04:55 AM 9/8/2003, you wrote:
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=@constantid
WHILE @Level > 0 BEGIN
if EXISTS (SELECT * FROM #stack WHERE [Level] = @Level) BEGIN
SELECT TOP 1 @constantid=constantid FROM #stack WHERE [Level]=@Level ORDER BY constantid
DELETE FROM ConstantTaxa WHERE constantid=@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=@constantid
INSERT #stack
SELECT constantid, @LEVEL+1 FROM Constant
WHERE TaxonID=@constantid
If @@ROWCount > 0
SELECT @Level=@Level+1
END ELSE
SELECT @Level=@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=@constantid
WHILE @Level > 0 BEGIN if EXISTS (SELECT * FROM #stack WHERE [Level] = @Level) BEGIN
SELECT TOP 1 @constantid=constantid FROM #stack WHERE [Level]=@Level ORDER BY
constantid DELETE FROM ConstantTaxa WHERE constantid=@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=@constantid INSERT #stack SELECT constantid, @LEVEL+1 FROM Constant
WHERE TaxonID=@constantid If @@ROWCount > 0 SELECT @Level=@Level+1 END ELSE
SELECT @Level=@Level-1 END SET NoCount OFF GO



-- Best regards, Arthur mailto:ArthurMaloney@xxxxxxxxxx


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread