xsl-list
[Top] [All Lists]

RE: [xsl] Elements within "as-is" environment misaligning

2007-12-11 14:13:23
Are you sure you have set indent="no" in xsl:output? That's the only obvious
thing I can think of. Last time I helped a user with a whitespace problem I
eventually got them to show me the whole stylesheet and it turned out it
said xml:space="preserve" somewhere within it. That's just to illustrate
that it's quite hard to diagnose these problems when you can only see a
snippet.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: Cindy Hunt [mailto:Cindy(_dot_)Hunt(_at_)sas(_dot_)com] 
Sent: 11 December 2007 20:09
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Elements within "as-is" environment misaligning

Hi-

I am experiencing problems when transforming sections of 
"as-is" code. I have an element which contains a sample of 
programming code within it.
Within the code sample I have some additional elements I call 
<codeFocus> which will highlight that part of the code when 
it is formatted. During the XSL-FO transform, the alignment 
around these <codeFocus> elements gets messed up. The first 
one seems fine but then the 2nd one has an extra blank line 
that appears before it starts and the start tag is shifted 
over to the right (so it is no longer "as-is").

I am using a Saxon parser and version 1.0. I use Antenna 
House for the FO formatting but the problem occurs before the 
doc is formatted.

My XML input:
<code>Dim obConnection As New ADODB.Connection
    Dim obRecordset As New ADODB.Recordset

    <codeFocus>obConnection.Provider = "SAS.IOMProvider.1"</codeFocus>
    <codeFocus>obConnection.Properties("Prompt") = 
adPromptAlways</codeFocus>
    obConnection.Open

    obRecordset.Open "sasuser.MyData", obConnection, 
adOpenDynamic, adLockOptimistic, adCmdTableDirect
    ' Operate on obRecordset.
</code>


My FO output (note the blank line between the 2 fo:inline and 
how the 2nd one indents in now):
                     <fo:block font-family="'Courier 
Standard', 'monospace', 'Arial Unicode MS' " 
font-size="8.5pt" font-stretch="90%"
line-height="12pt" start-indent="93pt+15pt"
linefeed-treatment="preserve" white-space-treatment="preserve"
white-space-collapse="false" wrap-option="no-wrap" space-before="6pt"
space-after="0pt">Dim obConnection As New ADODB.Connection
    Dim obRecordset As New ADODB.Recordset

    <fo:inline background-color="rgb(235, 235, 235)" 
padding-left="2pt"
padding-right="2pt">obConnection.Provider = 
"SAS.IOMProvider.1"</fo:inline>
     
                        <fo:inline background-color="rgb(235, 
235, 235)"
padding-left="2pt" 
padding-right="2pt">obConnection.Properties("Prompt")
= adPromptAlways</fo:inline>
    obConnection.Open

    obRecordset.Open "sasuser.MyData", obConnection, 
adOpenDynamic, adLockOptimistic, adCmdTableDirect
    ' Operate on obRecordset.
</fo:block>

I did notice that if I type a letter before the 2nd 
<codeFocus> element, it works fine and doesn't insert the 
extra line or shift over.

I even tried defining my xsl:template on a line by itself as 
not to get any carriage returns:
      <xsl:template match="codeFocus"><fo:inline 
background-color="rgb(235, 235, 235)" padding-left="2pt"
padding-right="2pt"><xsl:apply-templates/></fo:inline></xsl:template>

Does anyone have any ideas to prevent this from happening?

Any suggestions appreciated,
Cindy Hunt


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>