Wednesday, June 20, 2012

Use CData to pass ® symbol to BPEL, OSB and Java web service


Recently in the my work for one project we need to send one message from Oracle SOA BPEL component to Oracle OSB then to one Java web service.  This web service takes this message and generates one email message.  In this message there is one element which value contains a string of text like: Pre-Paid micro-SIM for Apple® iPad.  
At first I didn't notice that there is a special character and of course the registration symbol is displayed properly.  Later I changed to use the escaped name code: ® for this registration symbol.  But there was the compile error with this change.  It looks like Oracle SOA doesn't recognize this escaped name code.  I tried to use the escaped numeric code: ®.  This time everything seems fine and in the BPEL flow trace I can see the ® symbol is displayed correctly. However when this message is transferred to OSB OSB still cannot pass the right ® symbol to Java web service.  After some thoughts I find the solution to use XML CData section to include this registration symbol.  In this way SOA BPEL and OSB will not parse the text string containing ® symbol until it reaches the Java web service which send the email message with the right ® symbol displayed. 
The below is the CDATA I used:

         
      <xsl:text><![CDATA[Pre-Paid micro-SIM for Apple® iPad]]></xsl:text>