4518: i_method_name varchar2(2000) := 'ecx_actions.transform_xml_with_xslt';
4519:
4520: i_stylesheet xslprocessor.Stylesheet;
4521: i_processor xslprocessor.Processor;
4522: i_xmlDocFrag xmlDOM.DOMDocumentFragment;
4523: i_domDocFrag xmlDOM.DOMDocumentFragment;
4524: i_domNode xmlDOM.DOMNode;
4525: i_xslt_dir varchar2(200);
4526: i_fullpath varchar2(200);
4519:
4520: i_stylesheet xslprocessor.Stylesheet;
4521: i_processor xslprocessor.Processor;
4522: i_xmlDocFrag xmlDOM.DOMDocumentFragment;
4523: i_domDocFrag xmlDOM.DOMDocumentFragment;
4524: i_domNode xmlDOM.DOMNode;
4525: i_xslt_dir varchar2(200);
4526: i_fullpath varchar2(200);
4527: i_string varchar2(2000);
4520: i_stylesheet xslprocessor.Stylesheet;
4521: i_processor xslprocessor.Processor;
4522: i_xmlDocFrag xmlDOM.DOMDocumentFragment;
4523: i_domDocFrag xmlDOM.DOMDocumentFragment;
4524: i_domNode xmlDOM.DOMNode;
4525: i_xslt_dir varchar2(200);
4526: i_fullpath varchar2(200);
4527: i_string varchar2(2000);
4528: l_xslt_payload clob;
4526: i_fullpath varchar2(200);
4527: i_string varchar2(2000);
4528: l_xslt_payload clob;
4529: l_parser xmlparser.parser;
4530: l_xsl_doc xmldom.DOMDocument;
4531: i_doc xmlDOM.DOMDocument;
4532: i_doc_frag xmlDOM.DOMDocumentFragment;
4533: i_node_type pls_integer;
4534:
4527: i_string varchar2(2000);
4528: l_xslt_payload clob;
4529: l_parser xmlparser.parser;
4530: l_xsl_doc xmldom.DOMDocument;
4531: i_doc xmlDOM.DOMDocument;
4532: i_doc_frag xmlDOM.DOMDocumentFragment;
4533: i_node_type pls_integer;
4534:
4535: begin
4528: l_xslt_payload clob;
4529: l_parser xmlparser.parser;
4530: l_xsl_doc xmldom.DOMDocument;
4531: i_doc xmlDOM.DOMDocument;
4532: i_doc_frag xmlDOM.DOMDocumentFragment;
4533: i_node_type pls_integer;
4534:
4535: begin
4536: if (l_procedureEnabled) then
4536: if (l_procedureEnabled) then
4537: ecx_debug.push(i_method_name);
4538: end if;
4539:
4540: if (xmlDOM.isNull(ecx_utils.g_xmldoc)) then
4541: return;
4542: end if;
4543:
4544: if(l_statementEnabled) then
4628:
4629: i_processor := xslprocessor.newProcessor;
4630:
4631: -- get the type of the DOMNode
4632: i_node_type := xmlDOM.getNodeType(ecx_utils.g_xmldoc);
4633: if(l_statementEnabled) then
4634: ecx_debug.log(l_statement, 'i_node_type', i_node_type,i_method_name);
4635: end if;
4636:
4633: if(l_statementEnabled) then
4634: ecx_debug.log(l_statement, 'i_node_type', i_node_type,i_method_name);
4635: end if;
4636:
4637: if (i_node_type = xmlDOM.DOCUMENT_NODE)
4638: then
4639: if(l_statementEnabled) then
4640: ecx_debug.log(l_statement, 'Creating Document Object from DOM Node...',i_method_name);
4641: end if;
4638: then
4639: if(l_statementEnabled) then
4640: ecx_debug.log(l_statement, 'Creating Document Object from DOM Node...',i_method_name);
4641: end if;
4642: i_doc := xmlDOM.makeDocument(ecx_utils.g_xmldoc);
4643: if(l_statementEnabled) then
4644: ecx_debug.log(l_statement, 'Before processing XSL',i_method_name);
4645: end if;
4646: i_xmlDocFrag := xslprocessor.processXSL(i_processor, i_stylesheet, i_doc);
4644: ecx_debug.log(l_statement, 'Before processing XSL',i_method_name);
4645: end if;
4646: i_xmlDocFrag := xslprocessor.processXSL(i_processor, i_stylesheet, i_doc);
4647:
4648: elsif (i_node_type = xmlDOM.DOCUMENT_FRAGMENT_NODE)
4649: then
4650: if(l_statementEnabled) then
4651: ecx_debug.log(l_statement,'Creating Document fragment from DOM Node...',i_method_name);
4652: end if;
4649: then
4650: if(l_statementEnabled) then
4651: ecx_debug.log(l_statement,'Creating Document fragment from DOM Node...',i_method_name);
4652: end if;
4653: i_doc_frag := xmlDOM.makeDocumentFragment(ecx_utils.g_xmldoc);
4654: if(l_statementEnabled) then
4655: ecx_debug.log(l_statement, 'Before processing XSL',i_method_name);
4656: end if;
4657: i_xmlDocFrag := xslprocessor.processXSL(i_processor, i_stylesheet, i_doc_frag);
4659:
4660: if(l_statementEnabled) then
4661: ecx_debug.log(l_statement,'XSL processed.Creating Node...',i_method_name);
4662: end if;
4663: i_domNode := xmlDOM.makeNode(i_xmlDocFrag);
4664: if(l_statementEnabled) then
4665: ecx_debug.log(l_statement, 'Node created.',i_method_name);
4666: end if;
4667: ecx_utils.g_xmldoc := i_domNode;
4674: if (l_parser.id <> -1)
4675: then
4676: xmlParser.freeParser(l_parser);
4677: end if;
4678: if (not xmldom.isNull(l_xsl_doc))
4679: then
4680: xmldom.freeDocument(l_xsl_doc);
4681: end if;
4682: if (not xmldom.isNull(i_doc))
4676: xmlParser.freeParser(l_parser);
4677: end if;
4678: if (not xmldom.isNull(l_xsl_doc))
4679: then
4680: xmldom.freeDocument(l_xsl_doc);
4681: end if;
4682: if (not xmldom.isNull(i_doc))
4683: then
4684: xmldom.freeDocument(i_doc);
4678: if (not xmldom.isNull(l_xsl_doc))
4679: then
4680: xmldom.freeDocument(l_xsl_doc);
4681: end if;
4682: if (not xmldom.isNull(i_doc))
4683: then
4684: xmldom.freeDocument(i_doc);
4685: end if;
4686:
4680: xmldom.freeDocument(l_xsl_doc);
4681: end if;
4682: if (not xmldom.isNull(i_doc))
4683: then
4684: xmldom.freeDocument(i_doc);
4685: end if;
4686:
4687: if (not xmldom.isNull(i_doc_frag))
4688: then
4683: then
4684: xmldom.freeDocument(i_doc);
4685: end if;
4686:
4687: if (not xmldom.isNull(i_doc_frag))
4688: then
4689: xmldom.freeDocFrag(i_doc_frag);
4690: end if;
4691:
4685: end if;
4686:
4687: if (not xmldom.isNull(i_doc_frag))
4688: then
4689: xmldom.freeDocFrag(i_doc_frag);
4690: end if;
4691:
4692: if (l_procedureEnabled) then
4693: ecx_debug.pop(i_method_name);
4693: ecx_debug.pop(i_method_name);
4694: end if;
4695: exception
4696: -- Put All DOM Parser Exceptions Here.
4697: when xmlDOM.INDEX_SIZE_ERR then
4698: ecx_debug.setErrorInfo(1,20,SQLERRM);
4699: if(l_unexpectedEnabled) then
4700: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4701: end if;
4703: if (l_parser.id <> -1)
4704: then
4705: xmlParser.freeParser(l_parser);
4706: end if;
4707: if (not xmldom.isNull(l_xsl_doc))
4708: then
4709: xmldom.freeDocument(l_xsl_doc);
4710: end if;
4711: if (l_procedureEnabled) then
4705: xmlParser.freeParser(l_parser);
4706: end if;
4707: if (not xmldom.isNull(l_xsl_doc))
4708: then
4709: xmldom.freeDocument(l_xsl_doc);
4710: end if;
4711: if (l_procedureEnabled) then
4712: ecx_debug.pop(i_method_name);
4713: end if;
4711: if (l_procedureEnabled) then
4712: ecx_debug.pop(i_method_name);
4713: end if;
4714: raise ecx_utils.program_exit;
4715: when xmlDOM.DOMSTRING_SIZE_ERR then
4716: ecx_debug.setErrorInfo(1,20,SQLERRM);
4717: if(l_unexpectedEnabled) then
4718: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4719: end if;
4721: if (l_parser.id <> -1)
4722: then
4723: xmlParser.freeParser(l_parser);
4724: end if;
4725: if (not xmldom.isNull(l_xsl_doc))
4726: then
4727: xmldom.freeDocument(l_xsl_doc);
4728: end if;
4729: if (l_procedureEnabled) then
4723: xmlParser.freeParser(l_parser);
4724: end if;
4725: if (not xmldom.isNull(l_xsl_doc))
4726: then
4727: xmldom.freeDocument(l_xsl_doc);
4728: end if;
4729: if (l_procedureEnabled) then
4730: ecx_debug.pop(i_method_name);
4731: end if;
4729: if (l_procedureEnabled) then
4730: ecx_debug.pop(i_method_name);
4731: end if;
4732: raise ecx_utils.program_exit;
4733: when xmlDOM.HIERARCHY_REQUEST_ERR then
4734: ecx_debug.setErrorInfo(1,20,SQLERRM);
4735: if(l_unexpectedEnabled) then
4736: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4737: end if;
4739: if (l_parser.id <> -1)
4740: then
4741: xmlParser.freeParser(l_parser);
4742: end if;
4743: if (not xmldom.isNull(l_xsl_doc))
4744: then
4745: xmldom.freeDocument(l_xsl_doc);
4746: end if;
4747: if (l_procedureEnabled) then
4741: xmlParser.freeParser(l_parser);
4742: end if;
4743: if (not xmldom.isNull(l_xsl_doc))
4744: then
4745: xmldom.freeDocument(l_xsl_doc);
4746: end if;
4747: if (l_procedureEnabled) then
4748: ecx_debug.pop(i_method_name);
4749: end if;
4747: if (l_procedureEnabled) then
4748: ecx_debug.pop(i_method_name);
4749: end if;
4750: raise ecx_utils.program_exit;
4751: when xmlDOM.WRONG_DOCUMENT_ERR then
4752: ecx_debug.setErrorInfo(1,20,SQLERRM);
4753: if(l_unexpectedEnabled) then
4754: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4755: end if;
4757: if (l_parser.id <> -1)
4758: then
4759: xmlParser.freeParser(l_parser);
4760: end if;
4761: if (not xmldom.isNull(l_xsl_doc))
4762: then
4763: xmldom.freeDocument(l_xsl_doc);
4764: end if;
4765: if (l_procedureEnabled) then
4759: xmlParser.freeParser(l_parser);
4760: end if;
4761: if (not xmldom.isNull(l_xsl_doc))
4762: then
4763: xmldom.freeDocument(l_xsl_doc);
4764: end if;
4765: if (l_procedureEnabled) then
4766: ecx_debug.pop(i_method_name);
4767: end if;
4765: if (l_procedureEnabled) then
4766: ecx_debug.pop(i_method_name);
4767: end if;
4768: raise ecx_utils.program_exit;
4769: when xmlDOM.INVALID_CHARACTER_ERR then
4770: ecx_debug.setErrorInfo(1,20,SQLERRM);
4771: if(l_unexpectedEnabled) then
4772: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4773: end if;
4775: if (l_parser.id <> -1)
4776: then
4777: xmlParser.freeParser(l_parser);
4778: end if;
4779: if (not xmldom.isNull(l_xsl_doc))
4780: then
4781: xmldom.freeDocument(l_xsl_doc);
4782: end if;
4783: if (l_procedureEnabled) then
4777: xmlParser.freeParser(l_parser);
4778: end if;
4779: if (not xmldom.isNull(l_xsl_doc))
4780: then
4781: xmldom.freeDocument(l_xsl_doc);
4782: end if;
4783: if (l_procedureEnabled) then
4784: ecx_debug.pop(i_method_name);
4785: end if;
4783: if (l_procedureEnabled) then
4784: ecx_debug.pop(i_method_name);
4785: end if;
4786: raise ecx_utils.program_exit;
4787: when xmlDOM.NO_DATA_ALLOWED_ERR then
4788: ecx_debug.setErrorInfo(1,20,SQLERRM);
4789: if(l_unexpectedEnabled) then
4790: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4791: end if;
4793: if (l_parser.id <> -1)
4794: then
4795: xmlParser.freeParser(l_parser);
4796: end if;
4797: if (not xmldom.isNull(l_xsl_doc))
4798: then
4799: xmldom.freeDocument(l_xsl_doc);
4800: end if;
4801: if (l_procedureEnabled) then
4795: xmlParser.freeParser(l_parser);
4796: end if;
4797: if (not xmldom.isNull(l_xsl_doc))
4798: then
4799: xmldom.freeDocument(l_xsl_doc);
4800: end if;
4801: if (l_procedureEnabled) then
4802: ecx_debug.pop(i_method_name);
4803: end if;
4801: if (l_procedureEnabled) then
4802: ecx_debug.pop(i_method_name);
4803: end if;
4804: raise ecx_utils.program_exit;
4805: when xmlDOM.No_MODIFICATION_ALLOWED_ERR then
4806: ecx_debug.setErrorInfo(1,20,SQLERRM);
4807: if(l_unexpectedEnabled) then
4808: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4809: end if;
4811: if (l_parser.id <> -1)
4812: then
4813: xmlParser.freeParser(l_parser);
4814: end if;
4815: if (not xmldom.isNull(l_xsl_doc))
4816: then
4817: xmldom.freeDocument(l_xsl_doc);
4818: end if;
4819: if (l_procedureEnabled) then
4813: xmlParser.freeParser(l_parser);
4814: end if;
4815: if (not xmldom.isNull(l_xsl_doc))
4816: then
4817: xmldom.freeDocument(l_xsl_doc);
4818: end if;
4819: if (l_procedureEnabled) then
4820: ecx_debug.pop(i_method_name);
4821: end if;
4819: if (l_procedureEnabled) then
4820: ecx_debug.pop(i_method_name);
4821: end if;
4822: raise ecx_utils.program_exit;
4823: when xmlDOM.NOT_FOUND_ERR then
4824: ecx_debug.setErrorInfo(1,20,SQLERRM);
4825: if(l_unexpectedEnabled) then
4826: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4827: end if;
4829: if (l_parser.id <> -1)
4830: then
4831: xmlParser.freeParser(l_parser);
4832: end if;
4833: if (not xmldom.isNull(l_xsl_doc))
4834: then
4835: xmldom.freeDocument(l_xsl_doc);
4836: end if;
4837: if (l_procedureEnabled) then
4831: xmlParser.freeParser(l_parser);
4832: end if;
4833: if (not xmldom.isNull(l_xsl_doc))
4834: then
4835: xmldom.freeDocument(l_xsl_doc);
4836: end if;
4837: if (l_procedureEnabled) then
4838: ecx_debug.pop(i_method_name);
4839: end if;
4837: if (l_procedureEnabled) then
4838: ecx_debug.pop(i_method_name);
4839: end if;
4840: raise ecx_utils.program_exit;
4841: when xmlDOM.NOT_SUPPORTED_ERR then
4842: ecx_debug.setErrorInfo(1,20,SQLERRM);
4843: if(l_unexpectedEnabled) then
4844: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4845: end if;
4847: if (l_parser.id <> -1)
4848: then
4849: xmlParser.freeParser(l_parser);
4850: end if;
4851: if (not xmldom.isNull(l_xsl_doc))
4852: then
4853: xmldom.freeDocument(l_xsl_doc);
4854: end if;
4855: if (l_procedureEnabled) then
4849: xmlParser.freeParser(l_parser);
4850: end if;
4851: if (not xmldom.isNull(l_xsl_doc))
4852: then
4853: xmldom.freeDocument(l_xsl_doc);
4854: end if;
4855: if (l_procedureEnabled) then
4856: ecx_debug.pop(i_method_name);
4857: end if;
4855: if (l_procedureEnabled) then
4856: ecx_debug.pop(i_method_name);
4857: end if;
4858: raise ecx_utils.program_exit;
4859: when xmlDOM.INUSE_ATTRIBUTE_ERR then
4860: ecx_debug.setErrorInfo(1,20,SQLERRM);
4861: -- free all the used variables
4862: if (l_parser.id <> -1)
4863: then
4862: if (l_parser.id <> -1)
4863: then
4864: xmlParser.freeParser(l_parser);
4865: end if;
4866: if (not xmldom.isNull(l_xsl_doc))
4867: then
4868: xmldom.freeDocument(l_xsl_doc);
4869: end if;
4870: if(l_unexpectedEnabled) then
4864: xmlParser.freeParser(l_parser);
4865: end if;
4866: if (not xmldom.isNull(l_xsl_doc))
4867: then
4868: xmldom.freeDocument(l_xsl_doc);
4869: end if;
4870: if(l_unexpectedEnabled) then
4871: ecx_debug.log(l_unexpected,ecx_utils.i_errbuf,i_method_name);
4872: end if;
4885: if (l_parser.id <> -1)
4886: then
4887: xmlParser.freeParser(l_parser);
4888: end if;
4889: if (not xmldom.isNull(l_xsl_doc))
4890: then
4891: xmldom.freeDocument(l_xsl_doc);
4892: end if;
4893: if (l_procedureEnabled) then
4887: xmlParser.freeParser(l_parser);
4888: end if;
4889: if (not xmldom.isNull(l_xsl_doc))
4890: then
4891: xmldom.freeDocument(l_xsl_doc);
4892: end if;
4893: if (l_procedureEnabled) then
4894: ecx_debug.pop(i_method_name);
4895: end if;