[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Loss of white space


Subject: RE: [xsl] Loss of white space
From: Arthur Maloney <ArthurMaloney@xxxxxxxxxx>
Date: Mon, 8 Sep 2003 09:55:05 +0100

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



Current Thread
Keywords