' Displays after XSL Transform

I am converting Oracle XMLDB XMLSchema registered XML documents in an XMLTYPE table into HTML by using the database XSLT engine. The characters for & and quote(') are stored in the document as & and '. Unfortunately, after the transformation to HTML these characters display in a browser window (IE6) as & and ' instead of as '&' and single quote('). This appears to be due to the fact that HTML does not recognise & or ' but will correctly render & and ' as '&' and single quote('). I would like to record these characters in my XML documents in XML DB as & and ' so they display correctly when rendered to the web. Oracle's XML parser always seems to swap these for & and ' whenever I do an XML document update.
Can anyone tell me if there is another approach to getting & and single quote to display properly after an XSLT transformation to HTML?
For reference sake our XML documents are stored in Oracle XMLDB (v9.2.0.5 on Solaris) with encode="ISO-8859-1" and we are doing the transformation in the database with the following code:
CREATE OR REPLACE FUNCTION get_cu_xml(
p_unitset_id IN NUMBER,
p_year IN NUMBER)
RETURN VARCHAR2
IS
CURSOR get_xml_cur(
p_unitset_id NUMBER,
p_year NUMBER)
IS
SELECT extract(VALUE(p),'/UnitSetYear')
FROM cu_unit_set_years_xml p
WHERE extractValue(VALUE(p),'/UnitSetYear/UnitSetID') = p_unitset_id
AND extractValue(VALUE(p),'/UnitSetYear/Year') = p_year;
xml_doc xmltype;
xsl_clob CLOB;
xml_clob CLOB;
myParser dbms_xmlparser.Parser;
indomdoc dbms_xmldom.domdocument;
xsltdomdoc dbms_xmldom.domdocument;
xsl dbms_xslprocessor.stylesheet;
outdomdocf dbms_xmldom.domdocumentfragment;
outnode dbms_xmldom.domnode;
proc dbms_xslprocessor.processor;
buf CLOB;
BEGIN
OPEN get_xml_cur(
p_unitset_id,
p_year);
FETCH get_xml_cur INTO xml_doc;
IF (get_xml_cur%FOUND) THEN
xml_clob := xml_doc.getClobVal();
xsl_clob := UriFactory.getUri('/home/cu/xsl/UMDetail.xslt').getXML().getClobVal();
myParser := dbms_xmlparser.newParser;
dbms_xmlparser.parseBuffer(myParser, xml_clob);
indomdoc := dbms_xmlparser.getDocument(myParser);
dbms_xmlparser.parseBuffer(myParser, xsl_clob);
xsltdomdoc := dbms_xmlparser.getDocument(myParser);
xsl := dbms_xslprocessor.newstylesheet(xsltdomdoc, '');
proc := dbms_xslprocessor.newProcessor;
--apply stylesheet to DOM document
outdomdocf := dbms_xslprocessor.processxsl(proc, xsl, indomdoc);
outnode := dbms_xmldom.makenode(outdomdocf);
-- PL/SQL DOM API for XMLType can be used here
dbms_xmldom.writetoclob(outnode, buf);
RETURN (buf);
ELSE
CLOSE get_xml_cur;
RETURN (NULL);
END IF;
end get_cu_xml;

Jinyu this is almost as if I need a disable-output-escaping="no" attribute for <xsl:for-each> but that appears not to be supported. The main section concerned in the xsl are the lines:
<xsl:for-each select="n1:Desc">
<xsl:apply-templates/>
</xsl:for-each>
The content in the Desc tag was edited with an XML editor which replaces quote characters with &apos;
The full text of my xsl file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:n1="http://www.utas.edu.au/cu" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <xsl:output version="1.0" encoding="utf-8" omit-xml-declaration="no" indent="no" media-type="text/html"/>
     <xsl:template match="/">
          <html>
               <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
               <head/>
               <body>
                    <xsl:for-each select="n1:UnitSetDetails">
                         <h1 align="center">
                              <xsl:for-each select="n1:UnitSetLabel">
                                   <xsl:apply-templates/>
                              </xsl:for-each>&#160;<xsl:for-each select="n1:UnitSetTitle">
                                   <xsl:apply-templates/>
                              </xsl:for-each>
                         </h1>
                         <xsl:if test="n1:UnitMembers/n1:UnitMember[1]/n1:FPTime != n1:UnitMembers/n1:UnitMember[2]/n1:FPTime">
                              <h2 align="center">
                                   <xsl:for-each select="n1:UnitMembers">
                                        <xsl:for-each select="n1:UnitMember">
                                             <xsl:for-each select="n1:UnitCode">
                                                  <xsl:apply-templates/>
                                             </xsl:for-each>(<xsl:for-each select="n1:FPTime">
                                                  <xsl:apply-templates/>
                                             </xsl:for-each>)&#160; </xsl:for-each>&#160;</xsl:for-each>
                              </h2>
                         </xsl:if>
                         <p>
                              <xsl:if test="string-length( n1:SpecialNote ) &gt; 0">
                                   <span style="font-weight:bold; ">SPECIAL NOTE:</span>&#160;<xsl:for-each select="n1:SpecialNote">
                                        <xsl:apply-templates/>
                                   </xsl:for-each>
                              </xsl:if>
                         </p>
                         <p>
                              <span style="font-weight:bold; ">OFFERINGS</span>
                              <table bgcolor="#F3F3F3" border="1" cellpadding="5" cellspacing="0" width="500">
                                   <tbody>
                                        <tr>
                                             <td width="535">
                                                  <xsl:if test="n1:Offered = &apos;N&apos;">Not Offered</xsl:if>
                                                  <xsl:if test="n1:Offered = &apos;Y&apos;">
                                                       <xsl:for-each select="n1:UnitMembers">
                                                            <table border="0" cellspacing="1">
                                                                 <thead>
                                                                      <tr bgcolor="silver">
                                                                           <td width="35">Unit</td>
                                                                           <td align="left" width="55">Sem 1</td>
                                                                           <td align="left" width="55">Sem 2</td>
                                                                           <td align="left" width="55">Full Yr</td>
                                                                           <td align="left" width="55">Spring</td>
                                                                           <td align="left" width="55">Summer</td>
                                                                           <td align="left" width="55">Winter</td>
                                                                      </tr>
                                                                 </thead>
                                                                 <tbody>
                                                                      <xsl:for-each select="n1:UnitMember">
                                                                           <tr>
                                                                                <td width="35">
                                                                                     <xsl:for-each select="n1:UnitCode">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:Sem1">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:Sem2">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:SemF">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:Sem5">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:Sem3">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                                <td align="left" width="55">
                                                                                     <xsl:for-each select="n1:Sem4">
                                                                                          <xsl:apply-templates/>
                                                                                     </xsl:for-each>
                                                                                </td>
                                                                           </tr>
                                                                      </xsl:for-each>
                                                                 </tbody>
                                                            </table>
                                                       </xsl:for-each>
Offered in Courses: <xsl:for-each select="n1:OfferedInCourses">
                                                            <xsl:apply-templates select="n1:Course"/>
                                                       </xsl:for-each>
                                                  </xsl:if>
                                             </td>
                                        </tr>
                                   </tbody>
                              </table>
                         </p>
                         <p>
                              <span style="font-weight:bold; ">DESCRIPTION</span>
                              <xsl:for-each select="n1:Desc">
                                   <xsl:apply-templates/>
                              </xsl:for-each>
                         </p>
                         <p>
                              <span style="font-weight:bold; ">WEIGHT:</span>&#160;<xsl:for-each select="n1:UnitMembers">
                                   <xsl:for-each select="n1:UnitMember">
                                        <xsl:for-each select="n1:UnitCode">
                                             <xsl:apply-templates/>
                                        </xsl:for-each>&#160;<xsl:for-each select="n1:DefaultWeight">(<xsl:apply-templates/>%)</xsl:for-each>&#160;&#160;&#160;&#160; </xsl:for-each>
                              </xsl:for-each>
                         </p>
                         <xsl:if test="string-length( n1:Assess ) &gt; 0">
                              <p>
                                   <span style="font-weight:bold; ">ASSESSMENT: </span>
                                   <xsl:for-each select="n1:Assess">
                                        <xsl:apply-templates/>
                                   </xsl:for-each>
                              </p>
                         </xsl:if>
                         <xsl:if test="string-length( n1:TeachPattern ) &gt; 0">
                              <p>
                                   <span style="font-weight:bold; ">TEACHING PATTERN: </span>
                                   <xsl:for-each select="n1:TeachPattern">
                                        <xsl:apply-templates/>
                                   </xsl:for-each>
                              </p>
                         </xsl:if>
                         <xsl:if test="string-length( n1:UnitMembers/n1:UnitMember/n1:WebSup ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:WebDep ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:FullOn ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:ResSupTL ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:ResDepTL ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:VideoConf ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:FlexSched ) &gt; 0
or string-length( n1:UnitMembers/n1:UnitMember/n1:WPLearn ) &gt; 0">
                              <p>
                                   <span style="font-weight:bold; ">FLEXIBLE &amp; ONLINE STUDY OPTIONS</span>
                                   <span style="font-weight:bold; ">Note:</span> Class attendance may still be required
                                   <xsl:for-each select="n1:UnitMembers">
                                        <xsl:for-each select="n1:UnitMember">
                                             <xsl:for-each select="n1:UnitCode">
                                                  <xsl:apply-templates/>
                                             </xsl:for-each>
                                             <xsl:if test="string-length( n1:WebSup ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Web supported - <xsl:for-each select="n1:WebSup">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
Online access to some part of this unit online is optional
</xsl:if>
                                             <xsl:if test="string-length( n1:WebDep ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Web dependent - <xsl:for-each select="n1:WebDep">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
Some parts of this unit will be taught online
</xsl:if>
                                             <xsl:if test="string-length( n1:FullOn ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Fully online - <xsl:for-each select="n1:FullOn">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
This unit is taught entirely online
</xsl:if>
                                             <xsl:if test="string-length( n1:ResSupTL ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Resource supported teaching &amp; learning - <xsl:for-each select="n1:ResSupTL">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
Additional resources are provided for your optional use; e.g. video taped lectures
</xsl:if>
                                             <xsl:if test="string-length( n1:ResDepTL ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Resource dependent teaching &amp; learning - <xsl:for-each select="n1:ResDepTL">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
Independent study with provided resources replaces face-to-face or other classes (e.g. lectures)
</xsl:if>
                                             <xsl:if test="string-length( n1:VideoConf ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Video conferencing - <xsl:for-each select="n1:VideoConf">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
A live video link between campuses is used for at least some teaching in this unit
</xsl:if>
                                             <xsl:if test="string-length( n1:FlexSched ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Flexible scheduling - <xsl:for-each select="n1:FlexSched">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
You can attend some classes out of normal teaching hours; e.g. weekend blocks, summer schools etc
</xsl:if>
                                             <xsl:if test="string-length( n1:WPLearning ) &gt; 0">
&#160; <img border="0">
                                                       <xsl:attribute name="src"><xsl:text disable-output-escaping="yes">http://www.utas.edu.au/courses/images/dotarrowB.gif</xsl:text></xsl:attribute>
                                                  </img>&#160;Workplace learning - <xsl:for-each select="n1:WPLearn">
                                                       <xsl:apply-templates/>
                                                  </xsl:for-each>
This unit involves study in the workplace
</xsl:if>
                                        </xsl:for-each>
                                   </xsl:for-each>
                                   About Flexible Study Options
                              </p>
                         </xsl:if>
                         <xsl:if test="count( /n1:UnitSetDetails/n1:Requisites/n1:Requisite ) &gt; 0">
                              <p>
                                   <xsl:for-each select="n1:Requisites">
                                        <span style="font-weight:bold; ">REQUISITE INFO</span>
                                        <table border="0" cellpadding="3" cellspacing="0">
                                             <tbody>
                                                  <xsl:for-each select="n1:Requisite">
                                                       <tr>
                                                            <td>
                                                                 <xsl:for-each select="n1:ReqType">
                                                                      <xsl:choose>
                                                                           <xsl:when test=".='PREREQ'">
                                                                                <xsl:text>Prereq</xsl:text>
                                                                           </xsl:when>
                                                                           <xsl:when test=".='COREQ'">
                                                                                <xsl:text>Coreq</xsl:text>
                                                                           </xsl:when>
                                                                           <xsl:when test=".='MEXCL'">
                                                                                <xsl:text>M.Excl</xsl:text>
                                                                           </xsl:when>
                                                                      </xsl:choose>
                                                                 </xsl:for-each>
                                                            </td>
                                                            <td>
                                                                 <xsl:for-each select="n1:ReqText">
                                                                      <xsl:apply-templates/>
                                                                 </xsl:for-each>
                                                            </td>
                                                       </tr>
                                                  </xsl:for-each>
                                             </tbody>
                                        </table>
                                   </xsl:for-each>
                              </p>
                         </xsl:if>
                         <xsl:if test="string-length( n1:RequiredTexts/n1:RequiredText ) &gt; 0 or string-length( n1:RecommendedTexts/n1:RecommendedText ) &gt; 0">
                              <p>
                                   <span style="font-weight:bold; ">TEXTS</span>
                                   <xsl:if test="string-length( n1:RequiredTexts/n1:RequiredText ) &gt; 0">
                                        <xsl:for-each select="n1:RequiredTexts">
                                             <span style="font-weight:bold; ">Required</span>
                                             <xsl:for-each select="n1:RequiredText">
                                                  <xsl:apply-templates/>
                                             </xsl:for-each>
                                        </xsl:for-each>
                                   </xsl:if>
                                   <xsl:if test="string-length( n1:RecommendedTexts/n1:RecommendedText ) &gt; 0">
                                        <xsl:for-each select="n1:RecommendedTexts">
                                             <span style="font-weight:bold; ">Recommended Texts</span>
                                             <xsl:for-each select="n1:RecommendedText">
                                                  <xsl:apply-templates/>
                                             </xsl:for-each>
                                        </xsl:for-each>
                                   </xsl:if>
                              </p>
                         </xsl:if>
                         <xsl:if test="string-length( n1:Staff ) &gt; 0">
                              <p>
                                   <span style="font-weight:bold; ">STAFF: </span>
                                   <xsl:for-each select="n1:Staff">
                                        <xsl:apply-templates/>
                                   </xsl:for-each>
                              </p>
                         </xsl:if>
                    </xsl:for-each>
               </body>
          </html>
     </xsl:template>
     <xsl:template match="n1:Bold">
          <span style="font-weight:bold; ">
               <xsl:apply-templates/>
          </span>
     </xsl:template>
     <xsl:template match="n1:BulletList">
          <ul style="margin-bottom:0; margin-top:0; " start="1" type="disc">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ul>
     </xsl:template>
     <xsl:template match="n1:BulletedList">
          <ul style="margin-bottom:0; margin-top:0; " start="1" type="disc">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ul>
     </xsl:template>
     <xsl:template match="n1:Course">
     [<a>
               <xsl:attribute name="href"><xsl:text disable-output-escaping="yes">/pls/portal/url/page/COURSE_UNIT/UTAS_COURSE_DETAIL?P_COURSE_CODE=</xsl:text><xsl:value-of select="."/></xsl:attribute>
               <xsl:apply-templates/>
          </a>
          <xsl:text disable-output-escaping="yes">] </xsl:text>
     </xsl:template>
     <xsl:template match="n1:Italic">
          <span style="font-style:italic; ">
               <xsl:apply-templates/>
          </span>
     </xsl:template>
     <xsl:template match="n1:ListBullet">
          <ul style="margin-bottom:0; margin-top:0; " start="1" type="disc">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ul>
     </xsl:template>
     <xsl:template match="n1:ListLetter">
          <ol style="margin-bottom:0; margin-top:0; " start="1" type="a">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ol>
     </xsl:template>
     <xsl:template match="n1:ListNumber">
          <ol style="margin-bottom:0; margin-top:0; " start="1" type="1">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ol>
     </xsl:template>
     <xsl:template match="n1:ListRoman">
          <ol style="margin-bottom:0; margin-top:0; " start="1" type="i">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ol>
     </xsl:template>
     <xsl:template match="n1:NumberedList">
          <ol style="margin-bottom:0; margin-top:0; " start="1" type="1">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ol>
     </xsl:template>
     <xsl:template match="n1:Unit">
          <xsl:if test="string-length(.) &gt; 0">
               <a>
                    <xsl:attribute name="href"><xsl:text disable-output-escaping="yes">/pls/portal/url/page/COURSE_UNIT/UTAS_UNIT_DETAIL?P_UNIT_CODE=</xsl:text><xsl:value-of select="."/></xsl:attribute>
                    <xsl:apply-templates/>
               </a>
          </xsl:if>
     </xsl:template>
     <xsl:template match="n1:ol">
          <ol style="margin-bottom:0; margin-top:0; " start="1" type="1">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ol>
     </xsl:template>
     <xsl:template match="n1:para">
          <p style="padding-bottom:0; padding-top:0; ">
               <xsl:apply-templates/>
          </p>
     </xsl:template>
     <xsl:template match="n1:table">
          <xsl:apply-templates/>
     </xsl:template>
     <xsl:template match="n1:ul">
          <ul style="margin-bottom:0; margin-top:0; " start="1" type="disc">
               <xsl:for-each select="n1:li">
                    <li>
                         <xsl:apply-templates/>
                    </li>
               </xsl:for-each>
          </ul>
     </xsl:template>
</xsl:stylesheet>

Similar Messages

  • Error: "... is not a table ..." XML not correctly interpreted after XSL-transformation. Table row quantity problem.

    Hey guys, this is one of my xml-elements:
    Jaspreet Sohi 12 18 Juliane Lenz 11 17 Sophie Charlotte Stender 10 15 Rosbeh Hamidzadeh Khayyat 12 17 Lion Stoldt 12 17 Mats Lucas Meincke 6 8 Bero Luke Vincent Ernst 6 8 Cedric Roth 6 8 Soner Cantay 6 8 The following XSL Transformation I use once for transforming all "m" tags and once in order to transform all "j" tags. Please imagine the CSL-code below to be duplicated exactly. Only the "jungs"-table-Tag is replaced by "mädchen" and all underscores _j are replace by _m. As well all "select="j[@..." parts are replaced by "select="m[@...". 1 2 3 The code is very easygoing I think and not difficult to understand. As I said, I use it twice - for both transformations. The very, extremely weird thing, my problem, is that one transformation works perfectly in InDesign and a table is created for all "kategorie"-tags (all is set within a for-each loop). But the second script does not work! I simply do not get this I can't understand it. I've tried more than anything. InDesign sais (in German, so translated based on assumption) "jungs is an invalid table element or is displayed in wrong order". The second strange thing is that I can replace my "aid:trows" attribute by any number, e.g. "10" and immediately the script works fine (as there are never more than 6 "j" tags in my XML so that never the table has more than 6 rows"). But it does not want to work correctly with the actual number, my variable "rows_j". These are my variables: They are all defined before the tables for m and j are created. So finally, why (the heck) is one table created and interpreted perfectly whereas the second - immediately following the first in the XSL.script as an EXACT copy of the first - results in an error? As i've already said, I've tried really everything. For example the script works also when one of the parts "" is randomly deleted from the script. Removing one of these parts directly makes the script working. Just one of my attempts to understand the thing but this has only shown that none of these parts "cell to end-for-each" includes an error. I'm really desperate and looking forward to being rescued by one of you geniuses :)

    Hah, No worries. The forum software is, well, different.
    What would be better, though, would be a sample ID file, any XSLT/XLT files you use, and a bit of data exactly as you have it (pre-transform state). ZIP it up, upload to say dropbox.com and feel free to send me a private message for the download link.
    Too many times there is something different between samples pasted into a post and the real thing that it is sometimes less useful time-wise. I'll keep it private, of course. Then we can communicate via PMs or email until we can (hopefully) arrive together at a solution, then post what that solution is in the forum to benefit others.
    Thank you, Mike

  • XSL Transformation between arrays

    Dear all
    I create to XSD for my variables:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns="http://www.asre-andishe.com/Inspec/General"
    targetNamespace="http://www.asre-andishe.com/Inspec/General"
    elementFormDefault="qualified">
    <xsd:complexType name="AgentArrayType">
    <xsd:sequence>
    <xsd:element name="Agent" type="ns:AgentType" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="AgentType">
    <xsd:sequence>
    <xsd:element name="user" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="Agent" type="ns:AgentType"></xsd:element>
    <xsd:element name="AgentsArray" type="ns:AgentArrayType"></xsd:element>
    </xsd:schema>
    and the other one:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns="http://www.asre-andishe.com/Inspec/DetermineInspec/retrive/relam"
    targetNamespace="http://www.asre-andishe.com/Inspec/DetermineInspec/retrive/relam"
    elementFormDefault="qualified">
    <xsd:complexType name="RelamAgentType">
    <xsd:sequence>
    <xsd:element name="user" type="xsd:string" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="RelamAgents" type="ns:RelamAgentType"></xsd:element>
    </xsd:schema>
    I create two empty variable and then initialized the second variable
    <RelamAgents>
    <user>john</user>
    <user>david</user>
    <user>jack</user>
    </RelamAgents>
    after that i use a transformation XSL and the second variable has been filled without no problem.
    <AgentsArray>
    <ns0:Agent>
    <ns0:user>john</ns0:user>
    </ns0:Agent>
    <ns0:Agent>
    <ns0:user>david</ns0:user>
    </ns0:Agent>
    <ns0:Agent>
    <ns0:user>jack</ns0:user>
    </ns0:Agent>
    </AgentsArray>
    but when i fill the first variable by receiving the output parameter from a service call, the XSL transformation did not work at all and the second variable remains empty.
    I have checked the first variable and i am sure that it is not null and it has the same vale:
    <RelamAgents>
    <user>john</user>
    <user>david</user>
    <user>jack</user>
    </RelamAgents>
    Would anybody please help me with this problem?
    Thank you very much

    Hi,
    receiving the output parameter from a service call, the XSL transformation did not workNamespaces... Check the namespaces the service call is using and see if they match with the XSL is expecting...
    Cheers,
    Vlad

  • XSL Transformation error source

    I am using MII 12.0 and I am getting the following error in the log file:
    javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: An attempt to write after the stream had been closed.
    The problem is that I am not using and XSL transforms that I know of. What BLS action might generate this error other than the obvious XSL Transformation Action?
    Thanks.
    ...Sparks

    I found this thread:
    [Re: IDOC error|Re: IDOC error]
    Is your system set up to receive any idocs?
    Edited by: Christian Libich on Feb 8, 2010 10:00 PM

  • XSL transformation with java binding

    Hi everyone!
    I am trying to implement na XSL transformation that uses java code binding.
    My XSL looks as follows:
    <i><xsl:stylesheet xmlns:myobj="java.lang.System"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xf="http://www.sapportals.com/wcm/app/xmlforms">
    <xsl:param name="myobj"/>
    <xsl:value-of select="string(myobj:currentTimeMillis())"/>
    </xsl:stylesheet></i>
    Everything works fine - current time is displayed.
    But when I try to use my custom java class the compiler returns an exception:
    <i>com.sapportals.wcm.WcmException: com.sap.engine.lib.xml.util.NestedException: Could not load class: ep.UmeLookup required for execution of 'UmeLookup.isReady'</i>
    My second xsl stytesheet with a reference to custom class looks as follows:
    <i><xsl:stylesheet xmlns:ume="ep.UmeLookup" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xf="http://www.sapportals.com/wcm/app/xmlforms">
    <xsl:param name="ume"/>
    <xsl:value-of select="string(ume:UmeLookup.isReady())"/>
    </xsl:stylesheet></i>
    I developed java class (ep.UmeLookup), made a .jar from it, included the jar archive in a Library project and deployed the library to the J2EE engine.
    It looks like my class is not 'visible' in J2EE engine, while in my opinion it should be. Does anyone know how to change that??
    BR / marek

    Ask this lady a question. Maybe she could answer your question.
    XSLT Mapping With JAVA Enhancement ( For Beginners)

  • Unused xml tags being printed in xsl transformation

    Hi,
    I'm just starting out with xslt, and I am have a small problem with unused data being added into the html output from an xsl transformation. The data set is very small and the transdorm is not complicated, but when I do a
    <xsl:template match="aa/bb/cc">
    <title><xsl:value-of select"."/></title>
    </xsl:template>
    cc will be used as the title, but aa/bb/dd and aa/bb/ee will be printed to the output stream directly after the </title> as standard text.
    <title>cc</title>ddee
    I have include the xml, the transform and the html source recieved at the end of this mail.
    Any help would be appreciated.
    Cheers
    Simon
    <webpage>
      <project>
        <title>Katrin</title>
        <version>Version 1.0</version>
        <start_date>01/01/2003</start_date>
      </project>
    </webpage>
    <xsl:stylesheet version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <xsl:output method="html"/>
        <!-- template rule matching source root element -->
        <xsl:template match="/">
            <html>
                <head>
                    <xsl:apply-templates mode="head"/>
                </head>
                <!-- Construct main body of page -->
                <body>
                    <xsl:apply-templates/>
                </body>
            </html>
        </xsl:template>
        <!-- Head -->
        <xsl:template match="webpage/project/title" mode="head">
            <title><xsl:value-of select="."/></title>
        </xsl:template>
        <!-- Body -->
        <xsl:template match="webpage/project/title">
            <h1><xsl:value-of select="."/></h1>
        </xsl:template>
        <xsl:template match="webpage/project/version">
            <div align="right" style="font-size : 8pt; font-family : Times serif; padding-top : 4; padding-bottom : 4; color : red"><xsl:value-of select="."/></div>
        </xsl:template>
        <xsl:template match="webpage/project/start_date">
            <div align="left" style="font-size : 8pt; font-family : Times serif; padding-top : 4; padding-bottom : 4; color : blue"><xsl:value-of select="."/></div>
        </xsl:template>
    </xsl:stylesheet>
    <html xmlns:fo="http://www.w3.org/1999/XSL/Format">
       <head>
          <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>Katrin</title>Version 0.101/01/2003</head>
       <body>
          <h1>Katrin</h1>
          <div align="right" style="font-size : 8pt; font-family : Times serif; padding-top : 4; padding-bottom : 4; color : red">Version 0.1</div>
          <div align="left" style="font-size : 8pt; font-family : Times serif; padding-top : 4; padding-bottom : 4; color : blue">01/01/2003</div>
       </body>
    </html>

    You had a couple of errors in your xsl. It should read something like:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
    <xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
    <xsl:template match="*|/">
    <html>
    <head><title>Greeting</title></head>
    <body>Words of greeting:
    <b><i><u><xsl:value-of select="greeting"/></u></i></b>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    This produces the result you are looking for:
    <html>
    <head>
    <title>Greeting</title>
    </head>
    <body>Words of greeting:
    <br>
    <b>
    <i>
    <u>Hello World.</u>
    </i>
    </b>
    </body>
    </html>
    null

  • Question about XSL transformation

    Hi All,
      I have a requirment where I need to convert internal table entries to a xml string. But i can't use the default XSL transformation 'ID' here because of some other requirements. Let me explain what I want to achieve with a simple example.
      I do have an internal table based on the structure as given below,
                  person
                       name
                       age
                       address
                  person
    Let us say now in runtime internal table 'lt_person' will hold few entries for this. Now I want convert this to a xml string in such a way that for the <person> element in the result xml string, concatenation of 'name' and 'age' field should come as an attribute with name let us say  'persondesc'.
              <person persondesc="Name1 25">
                       <name>Name1</name>
                       <age>25</age>
              </person>
    Could you please tell me how to define XML transformation using txn code STRANS inorder to achieve this.
    Thanks&Regards,
    Prajesh

    I believe by default xml validation is set to false for a BPEL Domain. I am not sure whether setting this to true will cause your process to error out after the transformation or if it only validates inbound and outbound messages.

  • ADF,Queries On XSL Transformation

    Our application is done using ADF Faces on Jdev 10.1.3.2
    We need to construct dynamic adf faces pages based on random XSDs provided by our backend code. There is no fixed structure for each XSD. Components to be displayed on the page would be mainly text labels and editable text fields. Base on XSD, each field also needs to be validated if it is compulsory Fields may also need to be validated for eg. for the length of the input value.
    Question is, are we able to use XSL transform on the XSD to dynamically render corresponding adf components on the page? Or could we apply XSL transform on a XML document on adf page?
    If yes, how can we do it?

    read http://www.oracle.com/technetwork/developer-tools/jdev/adf-task-flow-design-132904.pdf for task flows.
    Adn http://www.oracle.com/technetwork/articles/adf/index-092757.html
    For deployment How-To: ADF Deployment Guide or JDeveloper Frequently Asked Questions: FAQ #3 - How to deploy an ADF application on a standalone WebLogic server directl…
    And watch 25. Design - ADFBC Application Modules - How many should I have? - YouTube and   and 26. Design - ADFBC Application Modules - AM Connection Sharing - YouTube27. Design - ADFBC Application Modules - Future Proofing AM Design - YouTube and 28. Design - ADFBC Application Modules - Shared AMs - YouTube and
    Timo

  • XML data not displayed with XSL

    I have just started learning XML so bear with me. I have a xml document that I created and want to use a stylesheet to display it in html but it doesn't seem to be working. Here is the xml file:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="XSL\myXSL.xsl" type="text/xsl"?>
    <GstBk:Book xmlns:GstBk="http://www.testurl.com">
    <GstBk:Guest>
    <GstBk:Address>
    <GstBk:Name>John Doe</GstBk:Name><GstBk:From>Anywhere USA</GstBk:From>
    </GstBk:Address>
    </GstBk:Guest>
    </GstBk:Book>
    And here is the xsl document:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:GstBk="http://www.testurl.com"
    version="1.0"
    >
    <xsl:template match="GstBk:Book">
    <html>
    <head>
    <title>Guest Book</title>
    </head>
    <body>
    <xsl:apply-templates />
    </body>
    </html>
    </xsl:template>
    <xsl:template match="GstBk:Guest">
    Name = <xsl:value-of select="GstBk:Name" />
    </xsl:template>
    </xsl:stylesheet>
    But the only data I get on the browser is:
    Name =
    Can anyone see something wrong with my files? I have downloaded examples from the net and they seem to work. I even compared them to my files and can't see anything obviously different. Any ideas?
    Thanks

    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:GstBk="http://www.testurl.com">
       <xsl:template match="GstBk:Book">
          <html>
             <head>
                <title>Guest Book</title>
             </head>
             <body>
                <xsl:apply-templates />
             </body>
          </html>
       </xsl:template>
       <xsl:template match="GstBk:Guest">
          Name = <xsl:value-of select="GstBk:Address/GstBk:Name" />
       </xsl:template>
    </xsl:stylesheet>This style sheet with the xml you provided works for me. I use Xalan 2.1.0 for the transformation with the command line: java org.apache.xalan.xslt.Process -in your.xml -xsl your.xsl
    and I get this for the output:
    <html xmlns:GstBk="http://www.testurl.com">
    <head>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Guest Book</title>
    </head>
    <body>
          Name = John Doe
    </body>
    </html>If you still see a different result, let me know what your environment is.

  • How to display a xsl linked xml in your jsp?

    I want to have a file like this displayed in my jsp file...any1 know how ? thx
    http://www.w3schools.com/xsl/cdcatalog_with_xsl.xml

    The xsl transformation will output what you want, especialy xml (so html wont be a problem)
    In the case of the link you gave in your first post, if you look at the source, you'll see it is pure xml, with an xsl processing directive that tells the browser to make the transformation itself.
    You can do it this way (then your JSP should output xml)
    And you can do the transformation on the server side (the in your jsp, you'll transform an xml file with an xsl directly outputing on the jsp's outputstream)
    Example of an xsl transformation (server side):
    javax.xml.transform.TransformerFactory tFactory = javax.xml.transform.TransformerFactory
                .newInstance();
    javax.xml.transform.Transformer transformer = tFactory
                .newTransformer(new javax.xml.transform.stream.StreamSource(xslFileName));
    transformer.transform(
                                   new javax.xml.transform.stream.StreamSource( inputXmlFileName),
                                   new javax.xml.transform.stream.StreamResult(
                    jspOutputStream)); //you can output directly from the servlet outputstream, it will be better, i thinkHope it Helps

  • XSL Transform, double-byte characters and padding

    I have a stylesheet with the following variable that is being formatted to pad a parameter named textQualifierDescription to a length of 30 by calling the template called format-string.
    <xsl:variable name="textQualifierDescription2">
         <xsl:call-template name="format-string">
              <xsl:with-param name="myString" select="$textQualifierDescription"/>
              <xsl:with-param name="numbatchspaces">30</xsl:with-param>
         </xsl:call-template>
    </xsl:variable>
    <xsl:template name="format-string">
         <xsl:param name="myString" select="' ' "/>
         <xsl:param name="numbatchspaces" select="20"/>
         <xsl:param name="direction" select="right"/>
         <xsl:variable name="spacesstr" select="string('                                              ')"/>
         <xsl:variable name="padsize" select="$numbatchspaces -string-length($myString)"/>
         <xsl:variable name="spacepad" select="substring($spacesstr, 1, $padsize)"/>
         <xsl:choose>
              <xsl:when test="$direction = 'left'">
                   <xsl:value-of select="concat($spacepad,$myString)"/>
              </xsl:when>
              <xsl:otherwise>
                   <xsl:value-of select="concat($myString,$spacepad)"/>
              </xsl:otherwise>
         </xsl:choose>
    </xsl:template>I execute the xsl transform using the following statement in a stored procedure:
    transformedData := xmldata.transform(xsldata);The xsl transform works as expected until it encounters data that contains double-byte characters. My output is supposed to contain the following three fields as a single record
    textQualifierDescription - padded to a length 30
    lineNumber
    id
    If my textQualifierDescription contains a value of "Texto de posición"
    Line 1 - Texto de posición             00000001POS2005
    Line 2 - Texto de posición            00000001POS2005
    Line 1 is the expected result.
    Line 2 is the actual result. When the "format-string" function is called and even though "Texto de posición" is 17 characters in length, it looks as if oracle counts the double-byte character as 2 and calculates the string-length as 18 to come up with a padsize of 12. It then creates a spacepad of 12 spaces which is then concatenated to the 17 characters for a total length of 29. I have tested the stylesheet in xmlspy and it produces the expected result.
    Has anyone ever run into this sort of situation and is able to provide me with some sort of solution to this dilemma? This is running on 10g Release 10.2.0.4.0.

    Your searches should have also come up with the fact that CR XI R2 is not supported in .NET 2008. Only CR 2008 (12.x) and Crystal Reports Basic for Visual Studio 2008 (10.5) are supported in .NET 2008. I realize this is not good news given the release time line, but support or non support of cr xi r2 in .net 2008 is well documented - from [Supported Platforms|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7081b21c-911e-2b10-678e-fe062159b453
    ] to [KBases|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_dev/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do], to [Wiki|https://wiki.sdn.sap.com/wiki/display/BOBJ/WhichCrystalReportsassemblyversionsaresupportedinwhichversionsofVisualStudio+.NET].
    Best I can suggest is to try SP6:
    https://smpdl.sap-ag.de/~sapidp/012002523100015859952009E/crxir2win_sp6.exe
    MSM:
    https://smpdl.sap-ag.de/~sapidp/012002523100000634042010E/crxir2sp6_net_mm.zip
    MSI:
    https://smpdl.sap-ag.de/~sapidp/012002523100000633302010E/crxir2sp6_net_si.zip
    Failing that, you will have to move to a supported environment...
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Edited by: Ludek Uher on Jul 20, 2010 7:54 AM

  • Multiple XSL Transformations in ASP

    Dreamweaver will permit multiple inserts of XSL
    Transformations in PHP but when attempting the same in ASP -after
    inserting and testing the first, the option: Insert >
    Application Object > XSL Transformation is greyed out.
    If I try pasting in the transformation code I get a server
    error. Separately both XSL transformations work fine.
    I need to import two RSS feeds - does anyone have a clue what
    I'm doing wrong or know why this is not permitted in ASP?

    Yes.
    You can post the XSL transformations one after another.
    Take a look at my code for inserting data into 5 different tables:
    <?xml version="1.0"?>
    <database connection="dvddb" xmlns:xsql="urn:oracle-xsql">
    <xsql:include-request-params/>
    <xsql:set-stylesheet-param name="maxdvdid">
    SELECT tbl_dvd_sequence.NEXTVAL
    FROM TBL_DVD
    </xsql:set-stylesheet-param>
    <xsql:insert-request table="TBL_DVD" transform="/dvd/xsl/admin/tbldvdtransform.xsl"/>
    <xsql:insert-request table="LNK_DVD_FEATURE" transform="/dvd/xsl/admin/lnkdvdfeaturetransform.xsl"/>
    <xsql:insert-request table="LNK_DVD_STARS" transform="/dvd/xsl/admin/lnkdvdstartransform.xsl"/>
    <xsql:insert-request table="LNK_DVD_GENRE" transform="/dvd/xsl/admin/lnkdvdgenretransform.xsl"/>
    <xsql:insert-request table="LNK_DVD_DIRECTOR" transform="/dvd/xsl/admin/lnkdvddirectortransform.xsl"/>
    </database>
    <?xml-stylesheet type="text/xsl" href="/dvd/xsl/admin/createeditdeleteuserdvdconfirm.xsl"?>What I've done here is pull out the ID value from the main table that I'm updating. For these purposes lets just say the value is 10. I then use that variable in each of the XSL files to update each particular table.
    The ID is a foreign key for the other 4 tables, so they all update with the correct ID. If I submit one record or 100 records, they will all share the same unique row ID in the database.
    Hope that helps.
    Malik Graves-Pryor

  • CPO XSL Transform for CPSC Form data with Grid

    Does anyone have an XSL Transform worked out that conveniently parses the CPSC Form output from Service Link when it has a grid in it?
    For example the data from CPSC Service Link might look like:
    <root>
       <Common>
          <Action ClassID="">Some Action</Action>
          <RequisitionID>123</RequisitionID>
       </Common>
       <Attributes/>
       <FormData>
          <Dictionary.Field>Some Data</Dictionary.Field>
          <DictionaryWithGrid-1.Field1>somevalue</DictionaryWithGrid-1.Field1>
          <DictionaryWithGrid-1.Field2>someothervalue</DictionaryWithGrid-1.Field2>
          <DictionaryWithGrid-1.Field3>yetanothervalue</DictionaryWithGrid-1.Field3>
          <DictionaryWithGrid-2.Field1>somevalue2</DictionaryWithGrid-2.Field1>
          <DictionaryWithGrid-2.Field2>someothervalue2</DictionaryWithGrid-2.Field2>
          <DictionaryWithGrid-2.Field3>yetanothervalue2</DictionaryWithGrid-2.Field3>
       </FormData>
    </root>
    So the desired output would be
    <Row>
       <Field1>somevalue</Field1>
       <Field2>someothervalue</Field2>
       <Field3>yetanothervalue</Field3>
    </Row>
    <Row>
       <Field1>somevalue2</Field1>
       <Field2>someothervalue2</Field2>
       <Field3>yetanothervalue2</Field3>
    </Row>
    I'm having difficulty getting the right XSL select when the tag is something like 'DictionaryWithGrid-#.Field'.
    Thanks!

    That worked great, Svetlana!  Thank you very much for the help.
    I made some slight mods to make it even more portable and intuitive for XSL/XML beginners.
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <!-- Replace CHANGEME below with the name of the CPSC Form Dictionary to transform -->
    <xsl:variable name="Dictionary">CHANGEME</xsl:variable>
    <xsl:template match="root">
      <Table>
          <xsl:call-template name="ProcessOne">
            <xsl:with-param name="pos" select="1" />
          </xsl:call-template>
      </Table>
    </xsl:template>
      <xsl:template name="ProcessOne">
        <xsl:param name="pos" />
        <xsl:variable name="RowName" select="concat($Dictionary, '-', $pos)" />
        <xsl:if test="FormData/*[starts-with(name(), $RowName)] != ''">
          <Row>
            <xsl:for-each select="FormData/*[starts-with(name(), $RowName)]">
              <xsl:if test="starts-with(name(.), $RowName)">
                <xsl:variable name="FieldName" select="substring-after(name(.), '.')"/>
                <xsl:element name="{$FieldName}">
                  <xsl:value-of select="."/>
                </xsl:element>
              </xsl:if>
            </xsl:for-each>
          </Row>
          <xsl:call-template name="ProcessOne">
            <xsl:with-param name="pos" select="number($pos+1)" />
          </xsl:call-template>
        </xsl:if>
      </xsl:template>
    </xsl:stylesheet>

  • Xsl transformation from html to text.

    Hi, i want to tranform an html source and produce a output as text. All i want to do is to output values from my input fields in my html source. Any ideas on how i would construct my xsl file.
    example :
    HTML:
    <html>
    <body>
    <input name="od" type="text" value="123">
    <input name="id" type="text" value="456">
    </body>
    </html>
    would simply give :
    123
    456
    Thanks for your help !!!

    Here is what I came up with. I changed the regular HTML into XHTML then created a stylesheet that would use XPath to find and display the values or the value fields:
    test.xml (XHTML version of the HTML you posted)
    ======================================
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="test.xsl"?>
    <html>
    <body>
    <input name="od" type="text" value="123"/>
    <input name="id" type="text" value="456"/>
    </body>
    </html>
    test.xsl
    ======
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <html>
    <head>
    <title>Input values</title>
    </head>
    <body>
    <xsl:for-each select="html/body/input">
    <xsl:value-of select="@value"/>
    </xsl:for-each>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    this gives the desired result.

  • Registering Custom XSL Transformer

    Hi Forum,
       I wanted to register a custom XSL Transformer.
       The Option for using this custom transformation should be available in the selection screen of the out-of-the-box XML iView. So that, the selection screen will have 3 predefined transformers and my own custom transformer.
    I found some documents in help.sap.com but couldn’t succeed in implementing.
    http://help.sap.com/saphelp_nw04/helpdata/en/e1/98e14110340b7fe10000000a155106/frameset.htm
    Please suggest me the way of achieve it.
    Thanks in advance.
    Lakshminarayana

    Thanks a lot, Toby. You were right - I had put the jar files into an incorrect directory. After moving the jar file to oracle_home/j2ee/oc4j_bpel/applib, it started working. Previously it was in
    oracle_home/integration/orabpel/system/appserver/oc4j/j2ee/home/applib.
    Regards
    Antony

Maybe you are looking for