469,623 Members | 1,928 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,623 developers. It's quick & easy.

XslCompiledTransform.Load() fails sometimes

Basically the issue is, when the XSL style sheet is loaded by URI it
is cool but when the exact same style sheet loaded by it's contents
the load fails (for this particular style sheet). Because our sheets
are kept in a DB, loading by content is preferable.

Content based load code:

Stream xslStream = new MemoryStream(xslString);
XmlReader xslTextReader = XmlReader.Create(xslStream);
compliedXsl.Load(xslTextReader);

URI based load code:
compliedXsl.Load(xslUri);
The error states that there in an invalid character for the encoding
at line 2140 position 365.

Here is the problematic template from the style sheet (sorry it's so
long i could not include the entire thing, but The line below that
starts with "select="translate(translate(translate(substri ng-
after(..." is line 2140.):

<xsl:template match="IFRAME">
<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="0" WIDTH="100%">
<TR>
<TD/>
</TR>
<TR>
<TD ALIGN="CENTER">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%"
ALIGN="CENTER">
<TR>
<xsl:choose>
<xsl:when test="../IMAGES/GRAPHIC/FILENAME[. != '']">
<TD ALIGN="CENTER">
<IMG NAME="frameimg" ID="frameimg" CLASS="frame">
<xsl:attribute name="SRC"><xsl:value-of select="/DEFAULT/
LINK/IMAGES/GRAPHIC/FILENAME"/></xsl:attribute>
<xsl:if test="/DEFAULT/LINK/IMAGES/GRAPHIC/HEIGHT[. != '']">
<xsl:attribute name="HEIGHT"><xsl:value-of select="/DEFAULT/
LINK/IMAGES/GRAPHIC/HEIGHT"/></xsl:attribute>
</xsl:if>
<xsl:if test="/DEFAULT/LINK/IMAGES/GRAPHIC/WIDTH[. != '']">
<xsl:attribute name="WIDTH"><xsl:value-of select="/DEFAULT/
LINK/IMAGES/GRAPHIC/WIDTH"/></xsl:attribute>
</xsl:if>
<xsl:if test="SHOWBORDER[. = 'True']">
<xsl:attribute name="BORDER">1</xsl:attribute>
</xsl:if>
<xsl:attribute name="ALT"><xsl:value-of select="/DEFAULT/
LINK/IMAGES/GRAPHIC/CAPTION"/></xsl:attribute>
<xsl:attribute name="TITLE"><xsl:value-of select="/DEFAULT/
LINK/IMAGES/GRAPHIC/CAPTION"/></xsl:attribute>
</IMG>
</TD>
</xsl:when>
<xsl:otherwise>
<TD ALIGN="CENTER">
<IFRAME ID="Frame1" NAME="Frame1" WIDTH="99%" FRAMEBORDER="0"
MARGINHEIGHT="1" MARGINWIDTH="1"
ONLOAD="javascript:scrollParentTop();">
<xsl:choose>
<xsl:when test="/DEFAULT/LINK/ID[. != $reglink]">
<xsl:attribute name="SRC"><xsl:value-of select="/DEFAULT/
LINK/URL"/>
<xsl:for-each select="/DEFAULT/GENERAL/REQUEST/
QUERYSTRINGPARAMETER[not(starts-with(.,'L=')) and not(starts-
with(.,'l=')) and not(starts-with(.,'nav='))]">
<xsl:choose><xsl:when test="position() = 1 and
not(contains(/DEFAULT/LINK/URL, '?'))">?</
xsl:when><xsl:otherwise>&amp;</xsl:otherwise></xsl:choose><xsl:value-
of select="substring-before(., '=')" disable-output-escaping="yes"/
>=<xsl:call-template name="url-encode"><xsl:with-param
name="str"><xsl:value-of select="substring-after(., '=')" disable-
output-escaping="yes"/></xsl:with-param></xsl:call-template></xsl:for-
each></xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:attribute name="HEIGHT"><xsl:value-of select="HEIGHT"/
></xsl:attribute>
<xsl:if test="SHOWSCROLLBAR[. = 'False']">
<xsl:attribute name="SCROLLING">No</xsl:attribute>
</xsl:if>
<xsl:if test="SHOWBORDER[. = 'True']">
<xsl:attribute name="STYLE">border:solid <xsl:value-of
select="BORDERCOLOR"/1px</xsl:attribute>
</xsl:if>
<xsl:comment><![CDATA[ -->&nbsp;]]><![CDATA[<!-- ]]></
xsl:comment>
</IFRAME>
<SCRIPT LANGUAGE="JavaScript1.1">
<xsl:comment><![CDATA[
if (document.layers){
document.write("<img name='spacer' src='/images/static/gfx/
pxl_trans.gif' border=0 width=1 height=]]><xsl:value-of
select="HEIGHT"/><![CDATA[>");
document.close();
}
//]]></xsl:comment>
</SCRIPT>
<xsl:if test="/DEFAULT/LINK/ID[. = $reglink]">
<IFRAME id="spinner" SCROLLING="0" FRAMEBORDER="0"
MARGINHEIGHT="0" MARGINWIDTH="0" ALIGN="CENTER" STYLE="LEFT: 300px;
WIDTH: 300px; POSITION: absolute; TOP: 250px; BGCOLOR: #CC0000; Z-
INDEX: 0" SRC="/global/images/pm/loading.gif"/>
</xsl:if>
</TD>
</xsl:otherwise>
</xsl:choose>
</TR>
<xsl:if test="((../IMAGES/GRAPHIC/CAPTION) or (../WINDOW/
SHOWDATE[. = 'True']))">
<TR>
<TD ALIGN="CENTER">
<FONT>
<xsl:attribute name="FACE"><xsl:value-of select="/DEFAULT/
GENERAL/STYLE/FONTS/FONT19/FACE"/></xsl:attribute>
<xsl:attribute name="SIZE"><xsl:value-of select="/DEFAULT/
GENERAL/STYLE/FONTS/FONT19/SIZE"/></xsl:attribute>
<xsl:choose>
<xsl:when test="($linklayout != '0') and ($linklayout !=
'1')">
<xsl:attribute name="COLOR"><xsl:value-of select="/DEFAULT/
LINK/WINDOW/TEXTCOLOR"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="COLOR"><xsl:value-of select="/DEFAULT/
GENERAL/STYLE/FONTS/FONT8/COLOR"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="../IMAGES/GRAPHIC/CAPTION">
<xsl:value-of select="../IMAGES/GRAPHIC/CAPTION"/>
</xsl:if>
<xsl:if test="../WINDOW/SHOWDATE[. = 'True']">
<xsl:value-of select="$whitespace" disable-output-
escaping="yes"/>
<xsl:value-of select="/DEFAULT/GENERAL/DAYDATE"/>
</xsl:if>
</FONT>
<BR/>
</TD>
</TR>
</xsl:if>
<xsl:if test="../PAGEREFRESH[SHOWREFRESHBUTTON = 'True' or
SHOWREFRESHTEXT = 'True' ]">
<TR>
<TD ALIGN="CENTER">
<BR/>
<FORM NAME="RefreshForm">
<xsl:if test="../PAGEREFRESH[SHOWREFRESHBUTTON = 'True']">
<INPUT NAME="RefreshBtn" TYPE="Button" VALUE="Refresh">
<xsl:attribute name="OnClick"><![CDATA[refreshFrame();
return false]]></xsl:attribute>
</INPUT>
</xsl:if>
<xsl:if test="../PAGEREFRESH[SHOWREFRESHTEXT = 'True']">
<BR/>
<FONT>
<xsl:if test="/DEFAULT/GENERAL/STYLE/FONTS/FONT19/FACE[. !=
'Default']">
<xsl:attribute name="FACE"><xsl:value-of select="/DEFAULT/
GENERAL/STYLE/FONTS/FONT19/FACE"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="SIZE"><xsl:value-of select="/DEFAULT/
GENERAL/STYLE/FONTS/FONT19/SIZE"/></xsl:attribute>
<xsl:choose>
<xsl:when test="($linklayout != '0') and ($linklayout !=
'1')">
<xsl:attribute name="COLOR"><xsl:value-of select="/
DEFAULT/LINK/WINDOW/TEXTCOLOR"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="COLOR"><xsl:value-of select="/
DEFAULT/GENERAL/STYLE/FONTS/FONT8/COLOR"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="../PAGEREFRESH/REFRESHTEXT"/>
</FONT>
</xsl:if>
</FORM>
</TD>
</TR>
</xsl:if>
</TABLE>
</TD>
</TR>
</TABLE>
<DIV ID="quickformdiv" STYLE="position: absolute; top: 0; left: 0px;
width: 0; height: 0; visibility: hidden;">
<FORM NAME="qform" TARGET="Frame1" ACTION="/global/pm/
registration.asp">
<SCRIPT LANGUAGE="JavaScript">
<xsl:comment><![CDATA[

var formname = new Array();
var formval = new Array();]]><xsl:for-each select="/DEFAULT/GENERAL/
REQUEST/FORMVARIABLE">
<xsl:variable name="formname">
<xsl:value-of select="substring-before(normalize-space(.),'=')"/
>
</xsl:variable>
<xsl:variable name="formname_clean">
<xsl:choose>
<xsl:when test="starts-with($formname,'_')">
<xsl:value-of select="substring-after($formname,'_')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$formname"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="single_quote">
<xsl:text>&#x27;</xsl:text>
</xsl:variable>
<xsl:variable name="new_line">
<xsl:text/>
</xsl:variable>
<xsl:variable name="carriage_return">
<xsl:text/>
</xsl:variable><![CDATA[formname]]>[<xsl:value-of
select="normalize-space(position())"/>]<![CDATA[= "]]><xsl:value-of
select="$formname_clean"/><![CDATA[";]]><![CDATA[formval]]>[<xsl:value-
of select="normalize-space(position())"/>]<![CDATA[= "]]><xsl:value-of
select="translate(translate(translate(substring-after(.,'='),
'&#x22;', $single_quote), '&#xD;', '¶'), '&#xA;', '¶')"/><!
[CDATA[";]]></xsl:for-each><![CDATA[
var currentLinkID = ]]><xsl:value-of select="/DEFAULT/LINK/ID"/><!
[CDATA[;
var regLinkID = ]]><xsl:value-of select="/DEFAULT/GENERAL/REGISTRATION/
LINKNO"/><![CDATA[;
var qf_args = new Object();
var qf_query = document.location.search;
var qf_pairs1 = qf_query.split("?");
var qf_pairs = qf_pairs1[1].split("&");

for(i=0; i < qf_pairs.length; i++) {
var qf_pos = qf_pairs[i].indexOf('=');
if (qf_pos == -1) {
continue;
}
var qf_argname = qf_pairs[i].substring(0,qf_pos);
var qf_value = qf_pairs[i].substring(qf_pos+1);
qf_args[qf_argname] = unescape(qf_value);
}

if (document.getElementById("Frame1") != null) {
var qf_frame1 = document.getElementById("Frame1");
var qf_frame1_src = qf_frame1.src;
}

var qf_method = qf_args["method"];

if (currentLinkID == regLinkID) {
if (qf_method == "post") {
writeQFormElems2();
}
else {
writeQFormElems();
}
}
//]]></xsl:comment>
</SCRIPT>
</FORM>
</DIV>
<SCRIPT LANGUAGE="JavaScript">

if (currentLinkID == regLinkID) {

if (qf_method == "post") {
document.qform.method = "POST";

}
document.qform.action += "?function=" + qf_args["function"];
document.qform.target = "Frame1";
document.qform.submit();
}
</SCRIPT>
</xsl:template>

Any ideas?

-CJ

Mar 27 '07 #1
0 2999

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by W. Jordan | last post: by
4 posts views Thread by andrewcw | last post: by
1 post views Thread by Hans Kesting | last post: by
1 post views Thread by Mark | last post: by
1 post views Thread by =?Utf-8?B?Vmlub2Q=?= | last post: by
reply views Thread by devrayhaan | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.