3408:
3409: -----------------------------------------------------
3410: PROCEDURE exploretree(
3411: p_jrad_parent_element IN jdr_docbuilder.ELEMENT
3412: ,p_dom_parent_element IN xmldom.domnode
3413: ,p_grouping_tag IN VARCHAR2
3414: ,p_link_name IN VARCHAR2
3415: )
3416: IS
3413: ,p_grouping_tag IN VARCHAR2
3414: ,p_link_name IN VARCHAR2
3415: )
3416: IS
3417: l_child_nodes xmldom.domnodelist;
3418: l_child_node xmldom.domnode;
3419: l_parent_xml_node xmldom.domnode;
3420: l_child_count NUMBER := 0;
3421: l_namespace VARCHAR2(255);
3414: ,p_link_name IN VARCHAR2
3415: )
3416: IS
3417: l_child_nodes xmldom.domnodelist;
3418: l_child_node xmldom.domnode;
3419: l_parent_xml_node xmldom.domnode;
3420: l_child_count NUMBER := 0;
3421: l_namespace VARCHAR2(255);
3422: l_tagname VARCHAR2(255);
3415: )
3416: IS
3417: l_child_nodes xmldom.domnodelist;
3418: l_child_node xmldom.domnode;
3419: l_parent_xml_node xmldom.domnode;
3420: l_child_count NUMBER := 0;
3421: l_namespace VARCHAR2(255);
3422: l_tagname VARCHAR2(255);
3423: l_tag_name VARCHAR2(255);
3420: l_child_count NUMBER := 0;
3421: l_namespace VARCHAR2(255);
3422: l_tagname VARCHAR2(255);
3423: l_tag_name VARCHAR2(255);
3424: l_attributes xmldom.domnamednodemap;
3425: l_attrib_node xmldom.domnode;
3426: l_attrib_count NUMBER := 0;
3427: attrname VARCHAR2(255);
3428: attrval VARCHAR2(4000);
3421: l_namespace VARCHAR2(255);
3422: l_tagname VARCHAR2(255);
3423: l_tag_name VARCHAR2(255);
3424: l_attributes xmldom.domnamednodemap;
3425: l_attrib_node xmldom.domnode;
3426: l_attrib_count NUMBER := 0;
3427: attrname VARCHAR2(255);
3428: attrval VARCHAR2(4000);
3429: l_groupingns VARCHAR2(255);
3433: l_child_element jdr_docbuilder.ELEMENT;
3434: l_ampers VARCHAR2(1) := fnd_global.local_chr(38);
3435: l_parent_tag_name VARCHAR2(255);
3436: BEGIN
3437: l_child_nodes := xmldom.getchildnodes(p_dom_parent_element);
3438: l_child_count := xmldom.getlength(l_child_nodes);
3439: l_parent_element := p_jrad_parent_element;
3440:
3441: IF (l_child_count > 0)
3434: l_ampers VARCHAR2(1) := fnd_global.local_chr(38);
3435: l_parent_tag_name VARCHAR2(255);
3436: BEGIN
3437: l_child_nodes := xmldom.getchildnodes(p_dom_parent_element);
3438: l_child_count := xmldom.getlength(l_child_nodes);
3439: l_parent_element := p_jrad_parent_element;
3440:
3441: IF (l_child_count > 0)
3442: THEN
3441: IF (l_child_count > 0)
3442: THEN
3443: FOR childcount IN 0 .. l_child_count - 1
3444: LOOP
3445: l_child_node := xmldom.item(l_child_nodes, childcount);
3446: l_grouping_tag := '';
3447: l_attributes := xmldom.getattributes(l_child_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3443: FOR childcount IN 0 .. l_child_count - 1
3444: LOOP
3445: l_child_node := xmldom.item(l_child_nodes, childcount);
3446: l_grouping_tag := '';
3447: l_attributes := xmldom.getattributes(l_child_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3444: LOOP
3445: l_child_node := xmldom.item(l_child_nodes, childcount);
3446: l_grouping_tag := '';
3447: l_attributes := xmldom.getattributes(l_child_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3452: IF NOT(xmldom.isnull(l_parent_xml_node))
3445: l_child_node := xmldom.item(l_child_nodes, childcount);
3446: l_grouping_tag := '';
3447: l_attributes := xmldom.getattributes(l_child_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3452: IF NOT(xmldom.isnull(l_parent_xml_node))
3453: THEN
3446: l_grouping_tag := '';
3447: l_attributes := xmldom.getattributes(l_child_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3452: IF NOT(xmldom.isnull(l_parent_xml_node))
3453: THEN
3454: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
3448: l_attrib_count := xmldom.getlength(l_attributes);
3449: l_tag_name := xmldom.getnodename(l_child_node);
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3452: IF NOT(xmldom.isnull(l_parent_xml_node))
3453: THEN
3454: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
3455: END IF;
3456:
3450: l_parent_xml_node := xmldom.getparentnode(l_child_node);
3451:
3452: IF NOT(xmldom.isnull(l_parent_xml_node))
3453: THEN
3454: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
3455: END IF;
3456:
3457: IF ((l_attrib_count = 0) AND(l_tag_name NOT IN('ui:firePartialAction')))
3458: THEN
3460: END IF;
3461:
3462: IF (p_grouping_tag IS NOT NULL)
3463: THEN
3464: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
3465: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
3466: l_child_element := createelement(l_namespace, l_tagname);
3467: l_attributes := xmldom.getattributes(l_child_node);
3468:
3461:
3462: IF (p_grouping_tag IS NOT NULL)
3463: THEN
3464: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
3465: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
3466: l_child_element := createelement(l_namespace, l_tagname);
3467: l_attributes := xmldom.getattributes(l_child_node);
3468:
3469: IF (l_attrib_count > 0)
3463: THEN
3464: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
3465: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
3466: l_child_element := createelement(l_namespace, l_tagname);
3467: l_attributes := xmldom.getattributes(l_child_node);
3468:
3469: IF (l_attrib_count > 0)
3470: THEN
3471: FOR attrcount IN 0 .. l_attrib_count - 1
3469: IF (l_attrib_count > 0)
3470: THEN
3471: FOR attrcount IN 0 .. l_attrib_count - 1
3472: LOOP
3473: l_attrib_node := xmldom.item(l_attributes, attrcount);
3474: attrname := xmldom.getnodename(l_attrib_node);
3475: attrval := xmldom.getnodevalue(l_attrib_node);
3476: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3477: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3470: THEN
3471: FOR attrcount IN 0 .. l_attrib_count - 1
3472: LOOP
3473: l_attrib_node := xmldom.item(l_attributes, attrcount);
3474: attrname := xmldom.getnodename(l_attrib_node);
3475: attrval := xmldom.getnodevalue(l_attrib_node);
3476: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3477: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3478: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
3471: FOR attrcount IN 0 .. l_attrib_count - 1
3472: LOOP
3473: l_attrib_node := xmldom.item(l_attributes, attrcount);
3474: attrname := xmldom.getnodename(l_attrib_node);
3475: attrval := xmldom.getnodevalue(l_attrib_node);
3476: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3477: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3478: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
3479: attrval := REPLACE(attrval, '"', l_ampers || 'quot;');
3492:
3493: jdr_docbuilder.addchild(p_jrad_parent_element, l_groupingns, l_groupingtagname, l_child_element);
3494: exploretree(l_child_element, l_child_node, l_grouping_tag, p_link_name);
3495: ELSE
3496: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
3497: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
3498: l_child_element := createelement(l_namespace, l_tagname);
3499:
3500: IF (l_attrib_count > 0)
3493: jdr_docbuilder.addchild(p_jrad_parent_element, l_groupingns, l_groupingtagname, l_child_element);
3494: exploretree(l_child_element, l_child_node, l_grouping_tag, p_link_name);
3495: ELSE
3496: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
3497: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
3498: l_child_element := createelement(l_namespace, l_tagname);
3499:
3500: IF (l_attrib_count > 0)
3501: THEN
3500: IF (l_attrib_count > 0)
3501: THEN
3502: FOR attrcount IN 0 .. l_attrib_count - 1
3503: LOOP
3504: l_attrib_node := xmldom.item(l_attributes, attrcount);
3505: attrname := xmldom.getnodename(l_attrib_node);
3506: attrval := xmldom.getnodevalue(l_attrib_node);
3507: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3508: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3501: THEN
3502: FOR attrcount IN 0 .. l_attrib_count - 1
3503: LOOP
3504: l_attrib_node := xmldom.item(l_attributes, attrcount);
3505: attrname := xmldom.getnodename(l_attrib_node);
3506: attrval := xmldom.getnodevalue(l_attrib_node);
3507: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3508: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3509: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
3502: FOR attrcount IN 0 .. l_attrib_count - 1
3503: LOOP
3504: l_attrib_node := xmldom.item(l_attributes, attrcount);
3505: attrname := xmldom.getnodename(l_attrib_node);
3506: attrval := xmldom.getnodevalue(l_attrib_node);
3507: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
3508: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
3509: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
3510: attrval := REPLACE(attrval, '"', l_ampers || 'quot;');
3696: l_new_ui_def VARCHAR2(300);
3697: l_lob CLOB;
3698: l_lob_temp CLOB;
3699: p xmlparser.parser;
3700: doc xmldom.domdocument;
3701: nl xmldom.domnodelist;
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3697: l_lob CLOB;
3698: l_lob_temp CLOB;
3699: p xmlparser.parser;
3700: doc xmldom.domdocument;
3701: nl xmldom.domnodelist;
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3705: nodeMap xmldom.DOMNamedNodeMap;
3698: l_lob_temp CLOB;
3699: p xmlparser.parser;
3700: doc xmldom.domdocument;
3701: nl xmldom.domnodelist;
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3705: nodeMap xmldom.DOMNamedNodeMap;
3706: n xmldom.DOMNode;
3699: p xmlparser.parser;
3700: doc xmldom.domdocument;
3701: nl xmldom.domnodelist;
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3705: nodeMap xmldom.DOMNamedNodeMap;
3706: n xmldom.DOMNode;
3707: attrname varchar2(100);
3701: nl xmldom.domnodelist;
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3705: nodeMap xmldom.DOMNamedNodeMap;
3706: n xmldom.DOMNode;
3707: attrname varchar2(100);
3708: len2 NUMBER;
3709:
3702: one_node xmldom.domnode;
3703: one_element xmldom.domelement;
3704: l_value VARCHAR2(32767);
3705: nodeMap xmldom.DOMNamedNodeMap;
3706: n xmldom.DOMNode;
3707: attrname varchar2(100);
3708: len2 NUMBER;
3709:
3710: TYPE chunk_record IS RECORD(
3776: xmlparser.parseclob(p, l_lob);
3777: SYS.DBMS_LOB.CLOSE(l_lob);
3778: SYS.DBMS_LOB.freetemporary(l_lob);
3779: doc := xmlparser.getdocument(p);
3780: nl := xmldom.getelementsbytagname(doc, '*');
3781:
3782: IF (p_document_type IS NULL )THEN
3783: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3784: LOOP
3779: doc := xmlparser.getdocument(p);
3780: nl := xmldom.getelementsbytagname(doc, '*');
3781:
3782: IF (p_document_type IS NULL )THEN
3783: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3784: LOOP
3785: one_node := xmldom.item(nl, node_index);
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3781:
3782: IF (p_document_type IS NULL )THEN
3783: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3784: LOOP
3785: one_node := xmldom.item(nl, node_index);
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3782: IF (p_document_type IS NULL )THEN
3783: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3784: LOOP
3785: one_node := xmldom.item(nl, node_index);
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3783: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3784: LOOP
3785: one_node := xmldom.item(nl, node_index);
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3791:
3784: LOOP
3785: one_node := xmldom.item(nl, node_index);
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3791:
3792: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3786: one_element := xmldom.makeelement(one_node);
3787: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3791:
3792: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3793: len2 := xmldom.getLength(nodeMap);
3794: -- loop through attributes
3788: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3791:
3792: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3793: len2 := xmldom.getLength(nodeMap);
3794: -- loop through attributes
3795: FOR i IN 0..len2-1 LOOP
3796: n := xmldom.item(nodeMap, i);
3789: -- get all attributes of element
3790: nodeMap := xmldom.getAttributes(one_node);
3791:
3792: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3793: len2 := xmldom.getLength(nodeMap);
3794: -- loop through attributes
3795: FOR i IN 0..len2-1 LOOP
3796: n := xmldom.item(nodeMap, i);
3797: attrname := xmldom.getNodeName(n);
3792: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3793: len2 := xmldom.getLength(nodeMap);
3794: -- loop through attributes
3795: FOR i IN 0..len2-1 LOOP
3796: n := xmldom.item(nodeMap, i);
3797: attrname := xmldom.getNodeName(n);
3798: IF(attrname='user:attribute3' ) THEN
3799: l_value := xmldom.getNodeValue(n);
3800: EXIT;
3793: len2 := xmldom.getLength(nodeMap);
3794: -- loop through attributes
3795: FOR i IN 0..len2-1 LOOP
3796: n := xmldom.item(nodeMap, i);
3797: attrname := xmldom.getNodeName(n);
3798: IF(attrname='user:attribute3' ) THEN
3799: l_value := xmldom.getNodeValue(n);
3800: EXIT;
3801: END IF;
3795: FOR i IN 0..len2-1 LOOP
3796: n := xmldom.item(nodeMap, i);
3797: attrname := xmldom.getNodeName(n);
3798: IF(attrname='user:attribute3' ) THEN
3799: l_value := xmldom.getNodeValue(n);
3800: EXIT;
3801: END IF;
3802: END LOOP;
3803: END IF;
3803: END IF;
3804:
3805: IF (l_value IS NOT NULL) THEN
3806: synch_user_attribute(l_value);
3807: xmldom.setattribute(one_element, 'user:attribute3', l_value);
3808: l_value:=NULL;
3809: END IF;
3810: END LOOP;
3811: END IF;
3811: END IF;
3812: -- Break the document to insert into the cz_jrad_chunks
3813: SYS.DBMS_LOB.createtemporary(l_lob_temp, TRUE, DBMS_LOB.SESSION);
3814: SYS.DBMS_LOB.OPEN(l_lob_temp, DBMS_LOB.lob_readwrite);
3815: xmldom.writetoclob(doc, l_lob_temp);
3816:
3817: FOR i IN l_chunk_tbl.FIRST .. l_chunk_tbl.LAST
3818: LOOP
3819: SYS.DBMS_LOB.READ(l_lob_temp, amt, l_offset, l_buffer);
3824:
3825: SYS.DBMS_LOB.CLOSE(l_lob_temp);
3826: SYS.DBMS_LOB.freetemporary(l_lob_temp);
3827: xmlparser.freeparser(p);
3828: xmldom.freeDocument(doc);
3829: END IF;
3830: END IF;
3831:
3832: --Bug#10417318:Modified insert for JRAD_CHUNKS as explained earlier.
3883: l_offset PLS_INTEGER := 1;
3884: l_length BINARY_INTEGER;
3885: l_doc_id NUMBER;
3886: p xmlparser.parser;
3887: doc xmldom.domdocument;
3888: nl xmldom.domnodelist;
3889: len NUMBER;
3890: n xmldom.domnode;
3891: top_node xmldom.domnode;
3884: l_length BINARY_INTEGER;
3885: l_doc_id NUMBER;
3886: p xmlparser.parser;
3887: doc xmldom.domdocument;
3888: nl xmldom.domnodelist;
3889: len NUMBER;
3890: n xmldom.domnode;
3891: top_node xmldom.domnode;
3892: l_parent_node xmldom.domnode;
3886: p xmlparser.parser;
3887: doc xmldom.domdocument;
3888: nl xmldom.domnodelist;
3889: len NUMBER;
3890: n xmldom.domnode;
3891: top_node xmldom.domnode;
3892: l_parent_node xmldom.domnode;
3893: v_ns VARCHAR2(255);
3894: v_el VARCHAR2(255);
3887: doc xmldom.domdocument;
3888: nl xmldom.domnodelist;
3889: len NUMBER;
3890: n xmldom.domnode;
3891: top_node xmldom.domnode;
3892: l_parent_node xmldom.domnode;
3893: v_ns VARCHAR2(255);
3894: v_el VARCHAR2(255);
3895: len1 NUMBER;
3888: nl xmldom.domnodelist;
3889: len NUMBER;
3890: n xmldom.domnode;
3891: top_node xmldom.domnode;
3892: l_parent_node xmldom.domnode;
3893: v_ns VARCHAR2(255);
3894: v_el VARCHAR2(255);
3895: len1 NUMBER;
3896: len2 NUMBER;
3893: v_ns VARCHAR2(255);
3894: v_el VARCHAR2(255);
3895: len1 NUMBER;
3896: len2 NUMBER;
3897: nnm xmldom.domnamednodemap;
3898: attrname VARCHAR2(255);
3899: attrval VARCHAR2(255);
3900: newattrname VARCHAR2(255);
3901: name_space VARCHAR2(255);
3959: doc := xmlparser.getdocument(p);
3960: SYS.DBMS_LOB.CLOSE(l_lob);
3961: SYS.DBMS_LOB.freetemporary(l_lob);
3962: l_doc := jdr_docbuilder.createdocument(l_jrad_doc);
3963: top_node := xmldom.makenode(xmldom.getdocumentelement(doc));
3964:
3965: IF (g_toplevel_attr_tbl.COUNT > 0)
3966: THEN
3967: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3966: THEN
3967: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3968: LOOP
3969: BEGIN
3970: xmldom.removeattribute(xmldom.makeelement(top_node), g_toplevel_attr_tbl(i));
3971: EXCEPTION
3972: WHEN OTHERS
3973: THEN
3974: NULL;
3975: END;
3976: END LOOP;
3977: END IF;
3978:
3979: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3980: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3981: top_element := createelement(name_space, tag_name);
3982: nnm := xmldom.getattributes(top_node);
3983:
3976: END LOOP;
3977: END IF;
3978:
3979: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3980: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3981: top_element := createelement(name_space, tag_name);
3982: nnm := xmldom.getattributes(top_node);
3983:
3984: IF (xmldom.isnull(nnm) = FALSE)
3978:
3979: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3980: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3981: top_element := createelement(name_space, tag_name);
3982: nnm := xmldom.getattributes(top_node);
3983:
3984: IF (xmldom.isnull(nnm) = FALSE)
3985: THEN
3986: len2 := xmldom.getlength(nnm);
3980: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3981: top_element := createelement(name_space, tag_name);
3982: nnm := xmldom.getattributes(top_node);
3983:
3984: IF (xmldom.isnull(nnm) = FALSE)
3985: THEN
3986: len2 := xmldom.getlength(nnm);
3987:
3988: FOR i IN 0 .. len2 - 1
3982: nnm := xmldom.getattributes(top_node);
3983:
3984: IF (xmldom.isnull(nnm) = FALSE)
3985: THEN
3986: len2 := xmldom.getlength(nnm);
3987:
3988: FOR i IN 0 .. len2 - 1
3989: LOOP
3990: n := xmldom.item(nnm, i);
3986: len2 := xmldom.getlength(nnm);
3987:
3988: FOR i IN 0 .. len2 - 1
3989: LOOP
3990: n := xmldom.item(nnm, i);
3991: attrname := xmldom.getnodename(n);
3992: attrval := xmldom.getnodevalue(n);
3993: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3994: END LOOP;
3987:
3988: FOR i IN 0 .. len2 - 1
3989: LOOP
3990: n := xmldom.item(nnm, i);
3991: attrname := xmldom.getnodename(n);
3992: attrval := xmldom.getnodevalue(n);
3993: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3994: END LOOP;
3995: END IF;
3988: FOR i IN 0 .. len2 - 1
3989: LOOP
3990: n := xmldom.item(nnm, i);
3991: attrname := xmldom.getnodename(n);
3992: attrval := xmldom.getnodevalue(n);
3993: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3994: END LOOP;
3995: END IF;
3996:
4008: END;
4009:
4010: jrad_save_status := jdr_docbuilder.SAVE;
4011: xmlparser.freeparser(p);
4012: xmldom.freeDocument(doc);
4013: COMMIT;
4014: jdr_docbuilder.REFRESH;
4015: END LOOP;
4016:
4251: l_doc_id NUMBER;
4252: l_buffer LONG;
4253: firstchunk LONG;
4254: p xmlparser.parser;
4255: doc xmldom.domdocument;
4256: nl xmldom.domnodelist;
4257: len NUMBER;
4258: n xmldom.domnode;
4259: top_node xmldom.domnode;
4252: l_buffer LONG;
4253: firstchunk LONG;
4254: p xmlparser.parser;
4255: doc xmldom.domdocument;
4256: nl xmldom.domnodelist;
4257: len NUMBER;
4258: n xmldom.domnode;
4259: top_node xmldom.domnode;
4260: l_parent_node xmldom.domnode;
4254: p xmlparser.parser;
4255: doc xmldom.domdocument;
4256: nl xmldom.domnodelist;
4257: len NUMBER;
4258: n xmldom.domnode;
4259: top_node xmldom.domnode;
4260: l_parent_node xmldom.domnode;
4261: v_ns VARCHAR2(255);
4262: v_el VARCHAR2(255);
4255: doc xmldom.domdocument;
4256: nl xmldom.domnodelist;
4257: len NUMBER;
4258: n xmldom.domnode;
4259: top_node xmldom.domnode;
4260: l_parent_node xmldom.domnode;
4261: v_ns VARCHAR2(255);
4262: v_el VARCHAR2(255);
4263: len1 NUMBER;
4256: nl xmldom.domnodelist;
4257: len NUMBER;
4258: n xmldom.domnode;
4259: top_node xmldom.domnode;
4260: l_parent_node xmldom.domnode;
4261: v_ns VARCHAR2(255);
4262: v_el VARCHAR2(255);
4263: len1 NUMBER;
4264: len2 NUMBER;
4261: v_ns VARCHAR2(255);
4262: v_el VARCHAR2(255);
4263: len1 NUMBER;
4264: len2 NUMBER;
4265: nnm xmldom.domnamednodemap;
4266: attrname VARCHAR2(255);
4267: attrval VARCHAR2(255);
4268: newattrname VARCHAR2(255);
4269: name_space VARCHAR2(255);
4334: doc := xmlparser.getdocument(p);
4335: SYS.DBMS_LOB.CLOSE(l_lob);
4336: SYS.DBMS_LOB.freetemporary(l_lob);
4337: l_doc := jdr_docbuilder.createdocument(p_new_document_name);
4338: top_node := xmldom.makenode(xmldom.getdocumentelement(doc));
4339:
4340: IF (g_toplevel_attr_tbl.COUNT > 0)
4341: THEN
4342: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
4341: THEN
4342: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
4343: LOOP
4344: BEGIN
4345: xmldom.removeattribute(xmldom.makeelement(top_node), g_toplevel_attr_tbl(i));
4346: EXCEPTION
4347: WHEN OTHERS
4348: THEN
4349: NULL;
4350: END;
4351: END LOOP;
4352: END IF;
4353:
4354: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
4355: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
4356: top_element := createelement(name_space, tag_name);
4357: nnm := xmldom.getattributes(top_node);
4358:
4351: END LOOP;
4352: END IF;
4353:
4354: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
4355: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
4356: top_element := createelement(name_space, tag_name);
4357: nnm := xmldom.getattributes(top_node);
4358:
4359: IF (xmldom.isnull(nnm) = FALSE)
4353:
4354: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
4355: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
4356: top_element := createelement(name_space, tag_name);
4357: nnm := xmldom.getattributes(top_node);
4358:
4359: IF (xmldom.isnull(nnm) = FALSE)
4360: THEN
4361: len2 := xmldom.getlength(nnm);
4355: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
4356: top_element := createelement(name_space, tag_name);
4357: nnm := xmldom.getattributes(top_node);
4358:
4359: IF (xmldom.isnull(nnm) = FALSE)
4360: THEN
4361: len2 := xmldom.getlength(nnm);
4362:
4363: FOR i IN 0 .. len2 - 1
4357: nnm := xmldom.getattributes(top_node);
4358:
4359: IF (xmldom.isnull(nnm) = FALSE)
4360: THEN
4361: len2 := xmldom.getlength(nnm);
4362:
4363: FOR i IN 0 .. len2 - 1
4364: LOOP
4365: n := xmldom.item(nnm, i);
4361: len2 := xmldom.getlength(nnm);
4362:
4363: FOR i IN 0 .. len2 - 1
4364: LOOP
4365: n := xmldom.item(nnm, i);
4366: attrname := xmldom.getnodename(n);
4367: attrval := xmldom.getnodevalue(n);
4368: jdr_docbuilder.setattribute(top_element, attrname, attrval);
4369: END LOOP;
4362:
4363: FOR i IN 0 .. len2 - 1
4364: LOOP
4365: n := xmldom.item(nnm, i);
4366: attrname := xmldom.getnodename(n);
4367: attrval := xmldom.getnodevalue(n);
4368: jdr_docbuilder.setattribute(top_element, attrname, attrval);
4369: END LOOP;
4370: END IF;
4363: FOR i IN 0 .. len2 - 1
4364: LOOP
4365: n := xmldom.item(nnm, i);
4366: attrname := xmldom.getnodename(n);
4367: attrval := xmldom.getnodevalue(n);
4368: jdr_docbuilder.setattribute(top_element, attrname, attrval);
4369: END LOOP;
4370: END IF;
4371: