Hi,
The output from xsltc transformation is abnormal
when the input xml contains ". Using xsltc i
have compiled the style sheets inot a jar file
which i am using for transformation.


This is the input xml passed to the xsltc compiler:-

<DIOQSRESP>
<TITLE>&quot;ALL PENDING PROVISIONING ORDERS BY FRAME DUE
DATE&quot;,</TITLE>
<RECORD>
        <TEXT>LOC(7,5) IS&quot;_____&quot;;</TEXT>
        <MASK>&quot;_____&quot;</MASK>
</RECORD>
<ECAGR>
        <ECMSG>Operation successful</ECMSG>
        <ECSERVER>ebizz1</ECSERVER>
        <ECHARMPID>32260</ECHARMPID>
</ECAGR>
</DIOQSRESP>

The output that i am expecting in HTML is LOC(7,5) IS"_____".
i.e th text in <TEXT>LOC(7,5) IS&quot;_____&quot;;</TEXT> tag
should be converted to LOC(7,5) IS"_____";

But right now i am getting it as LOC(7,5) IS.

I am attaching the xsl which acts on the <DIOQSRESP> element (OQS.xsl)

Any ideas?

Thanks in Advance
Balaji

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0"
xmlns:ifas="ifas.uri"
exclude-result-prefixes="ifas"
>

<xsl:template match="/" mode="OQS">
	<xsl:apply-templates mode="OQS"/>
</xsl:template>

<xsl:template match="ROOT" mode="OQS">
	<xsl:choose>
	<xsl:when test="string-length(OQS_INPUT/QUERY)">
		<table class="maxwidth">
			<tr>
				<th class="center" width="33%">OQS Query</th>
				<th class="center" width="33%">OQS Database</th>
				<th class="center" width="33%">OQS User</th>
			</tr>
			<tr>
				<td class="center"><b><xsl:value-of select="OQS_INPUT/QUERY"/></b></td>
				<td class="center"><b><xsl:value-of select="OQS_INPUT/DB"/></b></td>
				<td class="center"><b><xsl:value-of select="OQS_INPUT/USER"/></b></td>
			</tr>
		</table>
		<xsl:choose>
		<xsl:when test="OQS_INPUT/ENVHDR/CM/ERR/ERRN &gt; 0">
			<table class="maxwidth">
			<tr><td class="message">OQS was unable to process your request</td></tr>
			<tr><td class="error"><xsl:value-of select='OQS_INPUT/ENVHDR/CM/ERR/ERRMSG'/></td></tr>
			<xsl:apply-templates select="OQS_INPUT/ENVHDR/HOSTRESP" mode="HOST_RESP"/>
			</table>
			<xsl:call-template name="addOQSEntryForm"/>
		</xsl:when>
		<xsl:otherwise>
			<br/>
			<form name="MAINFORM" method="POST" style="display:none">
				<input type="hidden" name="OQS_COMMAND" FORCE-VALUE="REPORT"/>
				<input type="hidden" name="QUERY" FORCE-VALUE="{OQS_INPUT/QUERY}"/>
				<input type="hidden" name="DB" FORCE-VALUE="{OQS_INPUT/DB}"/>
				<input type="hidden" name="USER" FORCE-VALUE="{OQS_INPUT/USER}"/>
				<input type="hidden" name="TITLE" FORCE-VALUE="{OQS_INPUT/DIOQSRESP/TITLE}"/>
				<input type="hidden" name="NUM_INPUTS" FORCE-VALUE="{count(OQS_INPUT/DIOQSRESP/RECORD)}"/>

				<table class="maxwidth">
					<tr><th colspan="2" class="center"><xsl:value-of select="OQS_INPUT/DIOQSRESP/TITLE"/></th></tr>
					<xsl:for-each select="OQS_INPUT/DIOQSRESP/RECORD">
						<xsl:variable name="POS" select="position()"/>
						<xsl:variable name="LEN" select="string-length(MASK)"/>
						<xsl:variable name="SIZE" select="$LEN + 7"/>
						<tr>
							<td class="left" width="50%"><b><xsl:value-of select="TEXT"/></b></td>
							<td class="left">
							<input type="HIDDEN" name="TEXT_{$POS}" FORCE-VALUE="{TEXT}"/>
							<xsl:choose>
							<xsl:when test="MASK='&quot;____&quot;,&quot;____&quot;,&quot;____&quot;,&quot;____&quot;,&quot;____&quot;'">
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="FIVE_BY_FOUR"/>
								<input type="TEXT" name="VAL_{$POS}" size="5" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="4" REQUIRED-WHEN="Y"/>&#160;
								<input type="TEXT" name="VAL_{$POS}_MORE_1" size="5" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="4" ERR-FIELD="VAL_{$POS}_ERR"/>&#160;
								<input type="TEXT" name="VAL_{$POS}_MORE_2" SHOW-WHEN="SELF:VAL_{$POS}_MORE_1=*" size="5" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="4" ERR-FIELD="VAL_{$POS}_ERR"/>&#160;
								<input type="TEXT" name="VAL_{$POS}_MORE_3" SHOW-WHEN="SELF:VAL_{$POS}_MORE_2=*" size="5" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="4" ERR-FIELD="VAL_{$POS}_ERR"/>&#160;
								<input type="TEXT" name="VAL_{$POS}_MORE_4" SHOW-WHEN="SELF:VAL_{$POS}_MORE_3=*" size="5" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="4" ERR-FIELD="VAL_{$POS}_ERR"/>
							</xsl:when>
							<xsl:when test='substring(MASK,1,1)="&apos;" and substring(MASK,$LEN,1)="&apos;" and substring(MASK,2,$LEN - 2)=substring("________________________________________",1,$LEN - 2)'>
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="IDENTIFIER_SINGLE"/>
								<input type="TEXT" name="VAL_{$POS}" size="{$SIZE}" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="{$LEN - 2}" REQUIRED-WHEN="Y"/>
							</xsl:when>
							<xsl:when test="substring(MASK,1,1)='&quot;' and substring(MASK,$LEN,1)='&quot;' and substring(MASK,2,$LEN - 2)=substring('________________________________________',1,$LEN - 2)">
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="IDENTIFIER"/>
								<input type="TEXT" name="VAL_{$POS}" size="{$SIZE}" INPUT-TYPE="IDENTIFIER" CHECK-MINLENGTH="1" CHECK-MAXLENGTH="{$LEN - 2}" REQUIRED-WHEN="Y"/>
							</xsl:when>
							<xsl:when test="MASK='__/__/__'">
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="DATE"/>
								<input type="TEXT" name="VAL_{$POS}" size="10" REQUIRED-WHEN="Y" INPUT-TYPE="DATE:NOW"/>
							</xsl:when>
							<xsl:when test="MASK='__/__/__ TO __/__/__'">
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="DATE_RANGE"/>
								<input type="TEXT" name="START_VAL_{$POS}" size="10" REQUIRED-WHEN="Y" INPUT-TYPE="DATE:NOW" ERR-FIELD="VAL_{$POS}_ERR"/>
								&#160;<b>TO</b>&#160;
								<input type="TEXT" name="END_VAL_{$POS}" size="10" REQUIRED-WHEN="Y" INPUT-TYPE="DATE:NOW" ERR-FIELD="VAL_{$POS}_ERR"/>
							</xsl:when>
							<xsl:otherwise>
								<input type="HIDDEN" name="TYPE_{$POS}" FORCE-VALUE="OTHER"/>
								<input type="TEXT" name="VAL_{$POS}" size="{$SIZE}" CHECK-MAXLENGTH="{$LEN}" REQUIRED-WHEN="Y" DEFAULT-VALUE="{MASK}"/>
							</xsl:otherwise>
							</xsl:choose>
							</td>
						</tr>
						<tr>
							<td/>
							<td class="fieldError" id="VAL_{$POS}_ERR"/>
						</tr>
					</xsl:for-each>
					<tr><td><br/></td></tr>
					<tr><th colspan="2">Report Options</th></tr>
					<tr><td class="left" colspan="2"><input name="LAST_PAGE_ONLY" type="CHECKBOX"/> Return Last Page of Report Only</td></tr>
				</table>
			</form>
			<table class="maxwidth">
			<xsl:call-template name="AddSubmit"/>
			</table>
		</xsl:otherwise>
		</xsl:choose>
	</xsl:when>
	<xsl:when test="string-length(SEARCH/HEADING)">
		<form name="SEARCHSAVEFORM" method="POST" style="display:none">
			<input type="hidden" name="SAVE_SEARCH"/>
			<input type="hidden" name="FILE_EXT" value="{/ROOT/SAVED_FILE/FILE_EXT}"/>
			<input type="hidden" name="OQS_COMMAND" value="SAVED"/>
			<input type="hidden" name="REPLACE_EXT" value="{/ROOT/SAVED_FILE/REPLACE_EXT}"/>
		</form>
		<form name="MAINFORM" method="POST" style="display:none">
		<table class="maxwidth">
			<xsl:if test="string-length(/ROOT/SAVED_FILE/FILE_EXT)">
				<tr><td class="warning">The information below is from <xsl:call-template name="DisplayDateTime"><xsl:with-param name="DATE" select="/ROOT/SAVED_FILE/DATE"/><xsl:with-param name="TIME" select="/ROOT/SAVED_FILE/TIME"/></xsl:call-template></td></tr>
			</xsl:if>
			<tr><th class="center"><xsl:value-of select="SEARCH/TITLE"/></th></tr>
		</table>
		<xsl:choose>
		<xsl:when test="SEARCH/ENVHDR/CM/ERR/ERRN &gt; 0">
			<table class="maxwidth">
			<tr><td class="message">OQS was unable to process your request</td></tr>
			<tr><td class="error"><xsl:value-of select='SEARCH/ENVHDR/CM/ERR/ERRMSG'/></td></tr>
			<xsl:apply-templates select="SEARCH/ENVHDR/HOSTRESP" mode="HOST_RESP"/>
			</table>
			<xsl:call-template name="addOQSEntryForm"/>
		</xsl:when>
		<xsl:otherwise>
			<xsl:choose>
			<xsl:when test="SEARCH/DIOQSRESP/WIDE_MODE='Y'">
				<table class="maxhide">
					<xsl:call-template name="ShowOptions"><xsl:with-param name="NAME" select="'OQS_WIDE'"/></xsl:call-template>
				</table>
				<table class="maxwidth" SHOW-WHEN="OQS_WIDE=LEFT">
				<tr><th class="center">Left 80 Column Display Mode</th></tr>
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/HEADER" mode="RAW_LEFT"/></pre></td></tr>
				<tr><td><hr/></td></tr>
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/LINE" mode="RAW_LEFT"/></pre></td></tr>
				</table>

				<table class="maxwidth" SHOW-WHEN="OQS_WIDE=RIGHT">
				<tr><th class="center">Right Side Display Mode</th></tr>
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/HEADER" mode="RAW_RIGHT"/></pre></td></tr>
				<tr><td><hr/></td></tr>
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/LINE" mode="RAW_RIGHT"/></pre></td></tr>
				</table>

				<table class="maxwidth" SHOW-WHEN="OQS_WIDE=ALL">
				<tr><th class="center">Full Width Display Mode</th></tr>
				<tr><td><pre class="extra-small"><xsl:apply-templates select="SEARCH/DIOQSRESP/HEADER" mode="RAW_LINES"/></pre></td></tr>
				<tr><td><hr/></td></tr>
				<tr><td><pre class="extra-small"><xsl:apply-templates select="SEARCH/DIOQSRESP/LINE" mode="RAW_LINES"/></pre></td></tr>
				</table>
			</xsl:when>
			<xsl:otherwise>
				<table class="maxwidth">
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/HEADER" mode="RAW_LINES"/></pre></td></tr>
				<tr><td><hr/></td></tr>
				<tr><td><pre class="normal"><xsl:apply-templates select="SEARCH/DIOQSRESP/LINE" mode="RAW_LINES"/></pre></td></tr>
				</table>
			</xsl:otherwise>
			</xsl:choose>
			<table class="maxwidth">
			<xsl:if test="SEARCH/DIOQSRESP/MORE='Y'">
				<tr><td class="warning">There were additional lines returned that cannot be displayed</td></tr>
			</xsl:if>
			<xsl:call-template name="AddSearchSave"/>
			</table>
		</xsl:otherwise>
		</xsl:choose>
		</form>
	</xsl:when>
	<xsl:otherwise>
		<xsl:call-template name="addOQSEntryForm"/>
	</xsl:otherwise>
	</xsl:choose>
</xsl:template>

<xsl:template name="addOQSEntryForm">
	<form name="MAINFORM" method="POST" style="display:none">

	<table class="maxwidth">
	<tr>
		<td width="30%" valign="top">
		<table class="inner">
		<xsl:call-template name="ShowOptions"><xsl:with-param name="NAME" select="'OQS'"/></xsl:call-template>
		</table>
		</td>

		<td valign="top">
		<table class="inner" SHOW-WHEN="OQS_COMMAND=RUN">
			<tr><th colspan="2">OQS Query</th></tr>
			<tr><td colspan="2" class="left"><xsl:call-template name="AddUserListField"><xsl:with-param name="FIELD" select="'QUERY'"/><xsl:with-param name="LIST" select="'OQS_QUERY'"/><xsl:with-param name="REQ" select="'Y'"/></xsl:call-template></td></tr>
			<tr><td colspan="2" class="fieldError" id="QUERY_ERR"/></tr>

			<tr><th colspan="2">OQS Database</th></tr>
			<tr><td colspan="2" class="left"><xsl:call-template name="AddUserListField"><xsl:with-param name="FIELD" select="'DB'"/><xsl:with-param name="LIST" select="'OQS_DB'"/><xsl:with-param name="REQ" select="'Y'"/></xsl:call-template></td></tr>
			<tr><td colspan="2" class="fieldError" id="DB_ERR"/></tr>

			<tr><th colspan="2">OQS User</th></tr>
			<tr><td colspan="2" class="left"><xsl:call-template name="AddUserListField"><xsl:with-param name="FIELD" select="'USER'"/><xsl:with-param name="LIST" select="'OQS_USER'"/><xsl:with-param name="REQ" select="'Y'"/></xsl:call-template></td></tr>
			<tr><td colspan="2" class="fieldError" id="USER_ERR"/></tr>
		</table>
		</td>
	</tr>
	</table>

	<table class="maxwidth" SHOW-WHEN="OQS_COMMAND=SAVED RECALL">
		<xsl:call-template name="ShowSavedDocs"><xsl:with-param name="SYSTEM" select="'DIOQS'"/></xsl:call-template>
	</table>

	<table class="maxwidth" SHOW-WHEN="OQS_COMMAND=RECALL">
		<tr><td><br/></td></tr>
		<tr><td class="message">Input dates will be automatically adjusted based on the current date</td></tr>
	</table>

	<table class="maxwidth">
	<xsl:call-template name="AddSubmit"/>
	</table>
	</form>
</xsl:template>

</xsl:stylesheet>

Reply via email to