rss
SOATUBE
Oracle
Custom Search SOABYTE here

Thursday, September 9, 2010

Convert comma delimited data to XML NODESET using XSL transforms in Oracle BPEL

















ANOTHER METHOD

<?xml version="1.0" encoding="UTF-8" ?>
<?oracle-xsl-mapper <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
  <mapSources>
    <source type="XSD">
      <schema location="source.xsd"/>
      <rootElement name="SourceCollection" namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/source%22/>
    </source>
  </mapSources>
  <mapTargets>
    <target type="XSD">
      <schema location="target.xsd"/>
      <rootElement name="parameters" namespace="http://xmlns.oracle.com/Application1/target%22/>
    </target>
  </mapTargets>
  <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.3.0(build 100415.2045.2557) AT [WED SEP 08 18:02:30 IST 2010]. -->
?>
<xsl:stylesheet version="1.0"
                xmlns:ns1="http://xmlns.oracle.com/Application1/target"
                xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
                xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
                xmlns:ns0="http://xmlns.oracle.com/pcbpel/adapter/db/top/source"
                xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
                xmlns:bpel2="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
                xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
                xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:med="http://schemas.oracle.com/mediator/xpath"
                xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
                xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
                xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
                xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:ora="http://schemas.oracle.com/xpath/extension"
                xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
                xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
                exclude-result-prefixes="xsi xsl ns0 xsd ns1 bpws xp20 mhdr bpel2 oraext dvm hwf med ids bpm xdk xref ora socket ldap">
  <xsl:template match="/">
    <ns1:parameters>
      <xsl:variable name="commandString">
        <xsl:value-of select="/ns0:sourceCollection/ns0:delimitedString"/>
      </xsl:variable>
      <xsl:call-template name="populateParam">
        <xsl:with-param name="commandString" select="$commandString"/>
      </xsl:call-template>
    </ns1:parameters>
  </xsl:template>
  <!--  User Defined Templates  -->
  <xsl:template name="populateParam">
    <xsl:param name="commandString"/>
    <xsl:if test="string-length($commandString) > 0">
      <xsl:variable name="tempParam">
        <xsl:value-of select="substring-before($commandString,',')"/>
      </xsl:variable>
      <ns1:param>
        <xsl:choose>
          <xsl:when test="string-length($tempParam) > 0">
            <xsl:value-of select="$tempParam"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$commandString"/>
          </xsl:otherwise>
        </xsl:choose>
      </ns1:param>
      <xsl:variable name="residualCmdString"
                    select="substring-after($commandString,',')"/>
      <xsl:if test="string-length($residualCmdString) > 0">
        <xsl:call-template name="populateParam">
          <xsl:with-param name="commandString" select="$residualCmdString"/>
        </xsl:call-template>
      </xsl:if>
    </xsl:if>
  </xsl:template>

</xsl:stylesheet>

0 comments:

Post a Comment

 
Blogger Profile