CREATE OR REPLACE PACKAGE xslt AS TYPE name_value IS RECORD( NAME VARCHAR2(40), VALUE VARCHAR2(200)); TYPE paramlist IS TABLE OF name_value INDEX BY BINARY_INTEGER; none paramlist; -- Return an XSLT stylesheet based on XML document of the stylesheet source FUNCTION stylesheet(doc xmldom.DOMDocument) RETURN xslprocessor.Stylesheet; FUNCTION stylesheet(doc VARCHAR2) RETURN xslprocessor.Stylesheet; FUNCTION stylesheet(doc CLOB) RETURN xslprocessor.Stylesheet; FUNCTION stylesheet(doc BFILE) RETURN xslprocessor.Stylesheet; FUNCTION stylesheetFromURL(url VARCHAR2) RETURN xslprocessor.Stylesheet; -- Transform an XML Document by an XSLT stylesheet, returning a String FUNCTION transform(source xmldom.DOMDocument, style xslprocessor.Stylesheet, params paramlist := none) RETURN VARCHAR2; FUNCTION transform(source VARCHAR2, style xslprocessor.Stylesheet, params paramlist := none) RETURN VARCHAR2; FUNCTION transform(source CLOB, style xslprocessor.Stylesheet, params paramlist := none) RETURN VARCHAR2; -- Transform an XML Document by an XSLT stylesheet, returning an XML doc FUNCTION transformToDOM(source xmldom.DOMDocument, style xslprocessor.Stylesheet, params paramlist := none) RETURN xmldom.DOMDocument; FUNCTION transformToDOM(source VARCHAR2, style xslprocessor.Stylesheet, params paramlist := none) RETURN xmldom.DOMDocument; FUNCTION transformToDOM(source CLOB, style xslprocessor.Stylesheet, params paramlist := none) RETURN xmldom.DOMDocument; -- Return a paramlist to be used for a transformation. FUNCTION params( n1 VARCHAR2, v1 VARCHAR2, n2 VARCHAR2:=NULL,v2 VARCHAR2:=NULL, n3 VARCHAR2:=NULL,v3 VARCHAR2:=NULL, n4 VARCHAR2:=NULL,v4 VARCHAR2:=NULL, n5 VARCHAR2:=NULL,v5 VARCHAR2:=NULL) RETURN paramlist; -- Release the memory used by a Stylesheet PROCEDURE freeStylesheet( style xslprocessor.Stylesheet); END; |