create or replace package body xml_stylesheet_pkg as /* Purpose: Package handles stylesheets for XML Remarks: Who Date Description ------ ---------- -------------------------------- MBR 10.05.2010 Created */ function get_default_xml_stylesheet_ie return varchar2 as l_returnvalue varchar2(32000); begin /* Purpose: get default XML stylesheet (based on IE stylesheet) Remarks: formats XML the way it is displayed by default in IE see http://www.biglist.com/lists/xsl-list/archives/200303/msg00794.html Who Date Description ------ ---------- -------------------------------- MBR 10.05.2010 Created */ l_returnvalue := '
  <?   ?>
xt =" "
 
<!--

  -->
  < x t />
- < xt >
  </ xt >
  < xt > </ xt >
+ < xt >
  </ xt >
'; return l_returnvalue; end get_default_xml_stylesheet_ie; function get_default_xml_stylesheet_ff return varchar2 as l_returnvalue varchar2(32000); begin /* Purpose: get default XML stylesheet (based on FF stylesheet) Remarks: formats XML the way it is displayed by default in FF see http://forums.mozillazine.org/viewtopic.php?f=38&t=293645 chrome://global/content/xml/XMLPrettyPrint.xsl Who Date Description ------ ---------- -------------------------------- MBR 23.02.2011 Created */ l_returnvalue := '
< />
< > </ >
< >
</ >
= ""
<? ?>
<?
?>
<!-- -->
<!--
-->
'; return l_returnvalue; end get_default_xml_stylesheet_ff; function transform (p_xml in xmltype, p_stylesheet in xmltype := null) return xmltype as l_returnvalue xmltype; begin /* Purpose: transform XML via stylesheet Remarks: Who Date Description ------ ---------- -------------------------------- MBR 22.01.2011 Created */ l_returnvalue := p_xml.transform (coalesce(p_stylesheet, xmltype(get_default_xml_stylesheet_ie))); return l_returnvalue; end transform; function transform_clob (p_clob in clob, p_stylesheet in clob := null) return clob as l_xml xmltype; l_returnvalue clob; begin /* Purpose: transform XML via stylesheet (clob version) Remarks: Who Date Description ------ ---------- -------------------------------- MBR 22.01.2011 Created */ l_xml := xmltype (p_clob); l_xml := l_xml.transform (xmltype(nvl(p_stylesheet, get_default_xml_stylesheet_ie))); l_returnvalue := l_xml.getclobval(); return l_returnvalue; end transform_clob; end xml_stylesheet_pkg; /