2801:
2802: -----------------------------------------------------
2803: PROCEDURE exploretree(
2804: p_jrad_parent_element IN jdr_docbuilder.ELEMENT
2805: ,p_dom_parent_element IN xmldom.domnode
2806: ,p_grouping_tag IN VARCHAR2
2807: ,p_link_name IN VARCHAR2
2808: )
2809: IS
2806: ,p_grouping_tag IN VARCHAR2
2807: ,p_link_name IN VARCHAR2
2808: )
2809: IS
2810: l_child_nodes xmldom.domnodelist;
2811: l_child_node xmldom.domnode;
2812: l_parent_xml_node xmldom.domnode;
2813: l_child_count NUMBER := 0;
2814: l_namespace VARCHAR2(255);
2807: ,p_link_name IN VARCHAR2
2808: )
2809: IS
2810: l_child_nodes xmldom.domnodelist;
2811: l_child_node xmldom.domnode;
2812: l_parent_xml_node xmldom.domnode;
2813: l_child_count NUMBER := 0;
2814: l_namespace VARCHAR2(255);
2815: l_tagname VARCHAR2(255);
2808: )
2809: IS
2810: l_child_nodes xmldom.domnodelist;
2811: l_child_node xmldom.domnode;
2812: l_parent_xml_node xmldom.domnode;
2813: l_child_count NUMBER := 0;
2814: l_namespace VARCHAR2(255);
2815: l_tagname VARCHAR2(255);
2816: l_tag_name VARCHAR2(255);
2813: l_child_count NUMBER := 0;
2814: l_namespace VARCHAR2(255);
2815: l_tagname VARCHAR2(255);
2816: l_tag_name VARCHAR2(255);
2817: l_attributes xmldom.domnamednodemap;
2818: l_attrib_node xmldom.domnode;
2819: l_attrib_count NUMBER := 0;
2820: attrname VARCHAR2(255);
2821: attrval VARCHAR2(4000);
2814: l_namespace VARCHAR2(255);
2815: l_tagname VARCHAR2(255);
2816: l_tag_name VARCHAR2(255);
2817: l_attributes xmldom.domnamednodemap;
2818: l_attrib_node xmldom.domnode;
2819: l_attrib_count NUMBER := 0;
2820: attrname VARCHAR2(255);
2821: attrval VARCHAR2(4000);
2822: l_groupingns VARCHAR2(255);
2826: l_child_element jdr_docbuilder.ELEMENT;
2827: l_ampers VARCHAR2(1) := fnd_global.local_chr(38);
2828: l_parent_tag_name VARCHAR2(255);
2829: BEGIN
2830: l_child_nodes := xmldom.getchildnodes(p_dom_parent_element);
2831: l_child_count := xmldom.getlength(l_child_nodes);
2832: l_parent_element := p_jrad_parent_element;
2833:
2834: IF (l_child_count > 0)
2827: l_ampers VARCHAR2(1) := fnd_global.local_chr(38);
2828: l_parent_tag_name VARCHAR2(255);
2829: BEGIN
2830: l_child_nodes := xmldom.getchildnodes(p_dom_parent_element);
2831: l_child_count := xmldom.getlength(l_child_nodes);
2832: l_parent_element := p_jrad_parent_element;
2833:
2834: IF (l_child_count > 0)
2835: THEN
2834: IF (l_child_count > 0)
2835: THEN
2836: FOR childcount IN 0 .. l_child_count - 1
2837: LOOP
2838: l_child_node := xmldom.item(l_child_nodes, childcount);
2839: l_grouping_tag := '';
2840: l_attributes := xmldom.getattributes(l_child_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2836: FOR childcount IN 0 .. l_child_count - 1
2837: LOOP
2838: l_child_node := xmldom.item(l_child_nodes, childcount);
2839: l_grouping_tag := '';
2840: l_attributes := xmldom.getattributes(l_child_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2837: LOOP
2838: l_child_node := xmldom.item(l_child_nodes, childcount);
2839: l_grouping_tag := '';
2840: l_attributes := xmldom.getattributes(l_child_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2845: IF NOT(xmldom.isnull(l_parent_xml_node))
2838: l_child_node := xmldom.item(l_child_nodes, childcount);
2839: l_grouping_tag := '';
2840: l_attributes := xmldom.getattributes(l_child_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2845: IF NOT(xmldom.isnull(l_parent_xml_node))
2846: THEN
2839: l_grouping_tag := '';
2840: l_attributes := xmldom.getattributes(l_child_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2845: IF NOT(xmldom.isnull(l_parent_xml_node))
2846: THEN
2847: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
2841: l_attrib_count := xmldom.getlength(l_attributes);
2842: l_tag_name := xmldom.getnodename(l_child_node);
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2845: IF NOT(xmldom.isnull(l_parent_xml_node))
2846: THEN
2847: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
2848: END IF;
2849:
2843: l_parent_xml_node := xmldom.getparentnode(l_child_node);
2844:
2845: IF NOT(xmldom.isnull(l_parent_xml_node))
2846: THEN
2847: l_parent_tag_name := xmldom.getnodename(l_parent_xml_node);
2848: END IF;
2849:
2850: IF ((l_attrib_count = 0) AND(l_tag_name NOT IN('ui:firePartialAction')))
2851: THEN
2853: END IF;
2854:
2855: IF (p_grouping_tag IS NOT NULL)
2856: THEN
2857: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
2858: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
2859: l_child_element := createelement(l_namespace, l_tagname);
2860: l_attributes := xmldom.getattributes(l_child_node);
2861:
2854:
2855: IF (p_grouping_tag IS NOT NULL)
2856: THEN
2857: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
2858: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
2859: l_child_element := createelement(l_namespace, l_tagname);
2860: l_attributes := xmldom.getattributes(l_child_node);
2861:
2862: IF (l_attrib_count > 0)
2856: THEN
2857: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
2858: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
2859: l_child_element := createelement(l_namespace, l_tagname);
2860: l_attributes := xmldom.getattributes(l_child_node);
2861:
2862: IF (l_attrib_count > 0)
2863: THEN
2864: FOR attrcount IN 0 .. l_attrib_count - 1
2862: IF (l_attrib_count > 0)
2863: THEN
2864: FOR attrcount IN 0 .. l_attrib_count - 1
2865: LOOP
2866: l_attrib_node := xmldom.item(l_attributes, attrcount);
2867: attrname := xmldom.getnodename(l_attrib_node);
2868: attrval := xmldom.getnodevalue(l_attrib_node);
2869: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2870: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2863: THEN
2864: FOR attrcount IN 0 .. l_attrib_count - 1
2865: LOOP
2866: l_attrib_node := xmldom.item(l_attributes, attrcount);
2867: attrname := xmldom.getnodename(l_attrib_node);
2868: attrval := xmldom.getnodevalue(l_attrib_node);
2869: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2870: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2871: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
2864: FOR attrcount IN 0 .. l_attrib_count - 1
2865: LOOP
2866: l_attrib_node := xmldom.item(l_attributes, attrcount);
2867: attrname := xmldom.getnodename(l_attrib_node);
2868: attrval := xmldom.getnodevalue(l_attrib_node);
2869: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2870: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2871: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
2872: attrval := REPLACE(attrval, '"', l_ampers || 'quot;');
2885:
2886: jdr_docbuilder.addchild(p_jrad_parent_element, l_groupingns, l_groupingtagname, l_child_element);
2887: exploretree(l_child_element, l_child_node, l_grouping_tag, p_link_name);
2888: ELSE
2889: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
2890: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
2891: l_child_element := createelement(l_namespace, l_tagname);
2892:
2893: IF (l_attrib_count > 0)
2886: jdr_docbuilder.addchild(p_jrad_parent_element, l_groupingns, l_groupingtagname, l_child_element);
2887: exploretree(l_child_element, l_child_node, l_grouping_tag, p_link_name);
2888: ELSE
2889: l_namespace := SUBSTR(xmldom.getnodename(l_child_node), 1, INSTR(xmldom.getnodename(l_child_node), ':'));
2890: l_tagname := SUBSTR(xmldom.getnodename(l_child_node), INSTR(xmldom.getnodename(l_child_node), ':') + 1);
2891: l_child_element := createelement(l_namespace, l_tagname);
2892:
2893: IF (l_attrib_count > 0)
2894: THEN
2893: IF (l_attrib_count > 0)
2894: THEN
2895: FOR attrcount IN 0 .. l_attrib_count - 1
2896: LOOP
2897: l_attrib_node := xmldom.item(l_attributes, attrcount);
2898: attrname := xmldom.getnodename(l_attrib_node);
2899: attrval := xmldom.getnodevalue(l_attrib_node);
2900: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2901: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2894: THEN
2895: FOR attrcount IN 0 .. l_attrib_count - 1
2896: LOOP
2897: l_attrib_node := xmldom.item(l_attributes, attrcount);
2898: attrname := xmldom.getnodename(l_attrib_node);
2899: attrval := xmldom.getnodevalue(l_attrib_node);
2900: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2901: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2902: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
2895: FOR attrcount IN 0 .. l_attrib_count - 1
2896: LOOP
2897: l_attrib_node := xmldom.item(l_attributes, attrcount);
2898: attrname := xmldom.getnodename(l_attrib_node);
2899: attrval := xmldom.getnodevalue(l_attrib_node);
2900: attrval := REPLACE(attrval, l_ampers, l_ampers || 'amp;');
2901: attrval := REPLACE(attrval, '>', l_ampers || 'gt;');
2902: attrval := REPLACE(attrval, '<', l_ampers || 'lt;');
2903: attrval := REPLACE(attrval, '"', l_ampers || 'quot;');
3076: l_new_ui_def VARCHAR2(300);
3077: l_lob CLOB;
3078: l_lob_temp CLOB;
3079: p xmlparser.parser;
3080: doc xmldom.domdocument;
3081: nl xmldom.domnodelist;
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3077: l_lob CLOB;
3078: l_lob_temp CLOB;
3079: p xmlparser.parser;
3080: doc xmldom.domdocument;
3081: nl xmldom.domnodelist;
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3085: nodeMap xmldom.DOMNamedNodeMap;
3078: l_lob_temp CLOB;
3079: p xmlparser.parser;
3080: doc xmldom.domdocument;
3081: nl xmldom.domnodelist;
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3085: nodeMap xmldom.DOMNamedNodeMap;
3086: n xmldom.DOMNode;
3079: p xmlparser.parser;
3080: doc xmldom.domdocument;
3081: nl xmldom.domnodelist;
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3085: nodeMap xmldom.DOMNamedNodeMap;
3086: n xmldom.DOMNode;
3087: attrname varchar2(100);
3081: nl xmldom.domnodelist;
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3085: nodeMap xmldom.DOMNamedNodeMap;
3086: n xmldom.DOMNode;
3087: attrname varchar2(100);
3088: len2 NUMBER;
3089:
3082: one_node xmldom.domnode;
3083: one_element xmldom.domelement;
3084: l_value VARCHAR2(32767);
3085: nodeMap xmldom.DOMNamedNodeMap;
3086: n xmldom.DOMNode;
3087: attrname varchar2(100);
3088: len2 NUMBER;
3089:
3090: TYPE chunk_record IS RECORD(
3156: xmlparser.parseclob(p, l_lob);
3157: SYS.DBMS_LOB.CLOSE(l_lob);
3158: SYS.DBMS_LOB.freetemporary(l_lob);
3159: doc := xmlparser.getdocument(p);
3160: nl := xmldom.getelementsbytagname(doc, '*');
3161:
3162: IF (p_document_type IS NULL )THEN
3163: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3164: LOOP
3159: doc := xmlparser.getdocument(p);
3160: nl := xmldom.getelementsbytagname(doc, '*');
3161:
3162: IF (p_document_type IS NULL )THEN
3163: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3164: LOOP
3165: one_node := xmldom.item(nl, node_index);
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3161:
3162: IF (p_document_type IS NULL )THEN
3163: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3164: LOOP
3165: one_node := xmldom.item(nl, node_index);
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3162: IF (p_document_type IS NULL )THEN
3163: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3164: LOOP
3165: one_node := xmldom.item(nl, node_index);
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3163: FOR node_index IN 0 .. xmldom.getlength(nl) - 1
3164: LOOP
3165: one_node := xmldom.item(nl, node_index);
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3171:
3164: LOOP
3165: one_node := xmldom.item(nl, node_index);
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3171:
3172: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3166: one_element := xmldom.makeelement(one_node);
3167: --node_attr := xmldom.getattributenode(one_element, 'user:attribute3');
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3171:
3172: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3173: len2 := xmldom.getLength(nodeMap);
3174: -- loop through attributes
3168: -- This is a workaround for bug 5211850 till the API xmldom.getattributenode is fixed
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3171:
3172: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3173: len2 := xmldom.getLength(nodeMap);
3174: -- loop through attributes
3175: FOR i IN 0..len2-1 LOOP
3176: n := xmldom.item(nodeMap, i);
3169: -- get all attributes of element
3170: nodeMap := xmldom.getAttributes(one_node);
3171:
3172: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3173: len2 := xmldom.getLength(nodeMap);
3174: -- loop through attributes
3175: FOR i IN 0..len2-1 LOOP
3176: n := xmldom.item(nodeMap, i);
3177: attrname := xmldom.getNodeName(n);
3172: IF (xmldom.isNull(nodeMap) = FALSE) THEN
3173: len2 := xmldom.getLength(nodeMap);
3174: -- loop through attributes
3175: FOR i IN 0..len2-1 LOOP
3176: n := xmldom.item(nodeMap, i);
3177: attrname := xmldom.getNodeName(n);
3178: IF(attrname='user:attribute3' ) THEN
3179: l_value := xmldom.getNodeValue(n);
3180: EXIT;
3173: len2 := xmldom.getLength(nodeMap);
3174: -- loop through attributes
3175: FOR i IN 0..len2-1 LOOP
3176: n := xmldom.item(nodeMap, i);
3177: attrname := xmldom.getNodeName(n);
3178: IF(attrname='user:attribute3' ) THEN
3179: l_value := xmldom.getNodeValue(n);
3180: EXIT;
3181: END IF;
3175: FOR i IN 0..len2-1 LOOP
3176: n := xmldom.item(nodeMap, i);
3177: attrname := xmldom.getNodeName(n);
3178: IF(attrname='user:attribute3' ) THEN
3179: l_value := xmldom.getNodeValue(n);
3180: EXIT;
3181: END IF;
3182: END LOOP;
3183: END IF;
3183: END IF;
3184:
3185: IF (l_value IS NOT NULL) THEN
3186: synch_user_attribute(l_value);
3187: xmldom.setattribute(one_element, 'user:attribute3', l_value);
3188: l_value:=NULL;
3189: END IF;
3190: END LOOP;
3191: END IF;
3191: END IF;
3192: -- Break the document to insert into the cz_jrad_chunks
3193: SYS.DBMS_LOB.createtemporary(l_lob_temp, TRUE, DBMS_LOB.SESSION);
3194: SYS.DBMS_LOB.OPEN(l_lob_temp, DBMS_LOB.lob_readwrite);
3195: xmldom.writetoclob(doc, l_lob_temp);
3196:
3197: FOR i IN l_chunk_tbl.FIRST .. l_chunk_tbl.LAST
3198: LOOP
3199: SYS.DBMS_LOB.READ(l_lob_temp, amt, l_offset, l_buffer);
3204:
3205: SYS.DBMS_LOB.CLOSE(l_lob_temp);
3206: SYS.DBMS_LOB.freetemporary(l_lob_temp);
3207: xmlparser.freeparser(p);
3208: xmldom.freeDocument(doc);
3209: END IF;
3210: END IF;
3211:
3212: IF (l_chunk_tbl.COUNT > 0) THEN
3257: l_offset PLS_INTEGER := 1;
3258: l_length BINARY_INTEGER;
3259: l_doc_id NUMBER;
3260: p xmlparser.parser;
3261: doc xmldom.domdocument;
3262: nl xmldom.domnodelist;
3263: len NUMBER;
3264: n xmldom.domnode;
3265: top_node xmldom.domnode;
3258: l_length BINARY_INTEGER;
3259: l_doc_id NUMBER;
3260: p xmlparser.parser;
3261: doc xmldom.domdocument;
3262: nl xmldom.domnodelist;
3263: len NUMBER;
3264: n xmldom.domnode;
3265: top_node xmldom.domnode;
3266: l_parent_node xmldom.domnode;
3260: p xmlparser.parser;
3261: doc xmldom.domdocument;
3262: nl xmldom.domnodelist;
3263: len NUMBER;
3264: n xmldom.domnode;
3265: top_node xmldom.domnode;
3266: l_parent_node xmldom.domnode;
3267: v_ns VARCHAR2(255);
3268: v_el VARCHAR2(255);
3261: doc xmldom.domdocument;
3262: nl xmldom.domnodelist;
3263: len NUMBER;
3264: n xmldom.domnode;
3265: top_node xmldom.domnode;
3266: l_parent_node xmldom.domnode;
3267: v_ns VARCHAR2(255);
3268: v_el VARCHAR2(255);
3269: len1 NUMBER;
3262: nl xmldom.domnodelist;
3263: len NUMBER;
3264: n xmldom.domnode;
3265: top_node xmldom.domnode;
3266: l_parent_node xmldom.domnode;
3267: v_ns VARCHAR2(255);
3268: v_el VARCHAR2(255);
3269: len1 NUMBER;
3270: len2 NUMBER;
3267: v_ns VARCHAR2(255);
3268: v_el VARCHAR2(255);
3269: len1 NUMBER;
3270: len2 NUMBER;
3271: nnm xmldom.domnamednodemap;
3272: attrname VARCHAR2(255);
3273: attrval VARCHAR2(255);
3274: newattrname VARCHAR2(255);
3275: name_space VARCHAR2(255);
3333: doc := xmlparser.getdocument(p);
3334: SYS.DBMS_LOB.CLOSE(l_lob);
3335: SYS.DBMS_LOB.freetemporary(l_lob);
3336: l_doc := jdr_docbuilder.createdocument(l_jrad_doc);
3337: top_node := xmldom.makenode(xmldom.getdocumentelement(doc));
3338:
3339: IF (g_toplevel_attr_tbl.COUNT > 0)
3340: THEN
3341: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3340: THEN
3341: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3342: LOOP
3343: BEGIN
3344: xmldom.removeattribute(xmldom.makeelement(top_node), g_toplevel_attr_tbl(i));
3345: EXCEPTION
3346: WHEN OTHERS
3347: THEN
3348: NULL;
3349: END;
3350: END LOOP;
3351: END IF;
3352:
3353: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3354: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3355: top_element := createelement(name_space, tag_name);
3356: nnm := xmldom.getattributes(top_node);
3357:
3350: END LOOP;
3351: END IF;
3352:
3353: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3354: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3355: top_element := createelement(name_space, tag_name);
3356: nnm := xmldom.getattributes(top_node);
3357:
3358: IF (xmldom.isnull(nnm) = FALSE)
3352:
3353: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3354: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3355: top_element := createelement(name_space, tag_name);
3356: nnm := xmldom.getattributes(top_node);
3357:
3358: IF (xmldom.isnull(nnm) = FALSE)
3359: THEN
3360: len2 := xmldom.getlength(nnm);
3354: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3355: top_element := createelement(name_space, tag_name);
3356: nnm := xmldom.getattributes(top_node);
3357:
3358: IF (xmldom.isnull(nnm) = FALSE)
3359: THEN
3360: len2 := xmldom.getlength(nnm);
3361:
3362: FOR i IN 0 .. len2 - 1
3356: nnm := xmldom.getattributes(top_node);
3357:
3358: IF (xmldom.isnull(nnm) = FALSE)
3359: THEN
3360: len2 := xmldom.getlength(nnm);
3361:
3362: FOR i IN 0 .. len2 - 1
3363: LOOP
3364: n := xmldom.item(nnm, i);
3360: len2 := xmldom.getlength(nnm);
3361:
3362: FOR i IN 0 .. len2 - 1
3363: LOOP
3364: n := xmldom.item(nnm, i);
3365: attrname := xmldom.getnodename(n);
3366: attrval := xmldom.getnodevalue(n);
3367: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3368: END LOOP;
3361:
3362: FOR i IN 0 .. len2 - 1
3363: LOOP
3364: n := xmldom.item(nnm, i);
3365: attrname := xmldom.getnodename(n);
3366: attrval := xmldom.getnodevalue(n);
3367: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3368: END LOOP;
3369: END IF;
3362: FOR i IN 0 .. len2 - 1
3363: LOOP
3364: n := xmldom.item(nnm, i);
3365: attrname := xmldom.getnodename(n);
3366: attrval := xmldom.getnodevalue(n);
3367: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3368: END LOOP;
3369: END IF;
3370:
3379: END;
3380:
3381: jrad_save_status := jdr_docbuilder.SAVE;
3382: xmlparser.freeparser(p);
3383: xmldom.freeDocument(doc);
3384: COMMIT;
3385: jdr_docbuilder.REFRESH;
3386: END LOOP;
3387:
3613: l_doc_id NUMBER;
3614: l_buffer LONG;
3615: firstchunk LONG;
3616: p xmlparser.parser;
3617: doc xmldom.domdocument;
3618: nl xmldom.domnodelist;
3619: len NUMBER;
3620: n xmldom.domnode;
3621: top_node xmldom.domnode;
3614: l_buffer LONG;
3615: firstchunk LONG;
3616: p xmlparser.parser;
3617: doc xmldom.domdocument;
3618: nl xmldom.domnodelist;
3619: len NUMBER;
3620: n xmldom.domnode;
3621: top_node xmldom.domnode;
3622: l_parent_node xmldom.domnode;
3616: p xmlparser.parser;
3617: doc xmldom.domdocument;
3618: nl xmldom.domnodelist;
3619: len NUMBER;
3620: n xmldom.domnode;
3621: top_node xmldom.domnode;
3622: l_parent_node xmldom.domnode;
3623: v_ns VARCHAR2(255);
3624: v_el VARCHAR2(255);
3617: doc xmldom.domdocument;
3618: nl xmldom.domnodelist;
3619: len NUMBER;
3620: n xmldom.domnode;
3621: top_node xmldom.domnode;
3622: l_parent_node xmldom.domnode;
3623: v_ns VARCHAR2(255);
3624: v_el VARCHAR2(255);
3625: len1 NUMBER;
3618: nl xmldom.domnodelist;
3619: len NUMBER;
3620: n xmldom.domnode;
3621: top_node xmldom.domnode;
3622: l_parent_node xmldom.domnode;
3623: v_ns VARCHAR2(255);
3624: v_el VARCHAR2(255);
3625: len1 NUMBER;
3626: len2 NUMBER;
3623: v_ns VARCHAR2(255);
3624: v_el VARCHAR2(255);
3625: len1 NUMBER;
3626: len2 NUMBER;
3627: nnm xmldom.domnamednodemap;
3628: attrname VARCHAR2(255);
3629: attrval VARCHAR2(255);
3630: newattrname VARCHAR2(255);
3631: name_space VARCHAR2(255);
3696: doc := xmlparser.getdocument(p);
3697: SYS.DBMS_LOB.CLOSE(l_lob);
3698: SYS.DBMS_LOB.freetemporary(l_lob);
3699: l_doc := jdr_docbuilder.createdocument(p_new_document_name);
3700: top_node := xmldom.makenode(xmldom.getdocumentelement(doc));
3701:
3702: IF (g_toplevel_attr_tbl.COUNT > 0)
3703: THEN
3704: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3703: THEN
3704: FOR i IN g_toplevel_attr_tbl.FIRST .. g_toplevel_attr_tbl.LAST
3705: LOOP
3706: BEGIN
3707: xmldom.removeattribute(xmldom.makeelement(top_node), g_toplevel_attr_tbl(i));
3708: EXCEPTION
3709: WHEN OTHERS
3710: THEN
3711: NULL;
3712: END;
3713: END LOOP;
3714: END IF;
3715:
3716: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3717: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3718: top_element := createelement(name_space, tag_name);
3719: nnm := xmldom.getattributes(top_node);
3720:
3713: END LOOP;
3714: END IF;
3715:
3716: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3717: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3718: top_element := createelement(name_space, tag_name);
3719: nnm := xmldom.getattributes(top_node);
3720:
3721: IF (xmldom.isnull(nnm) = FALSE)
3715:
3716: name_space := SUBSTR(xmldom.getnodename(top_node), 1, INSTR(xmldom.getnodename(top_node), ':'));
3717: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3718: top_element := createelement(name_space, tag_name);
3719: nnm := xmldom.getattributes(top_node);
3720:
3721: IF (xmldom.isnull(nnm) = FALSE)
3722: THEN
3723: len2 := xmldom.getlength(nnm);
3717: tag_name := SUBSTR(xmldom.getnodename(top_node), INSTR(xmldom.getnodename(top_node), ':') + 1);
3718: top_element := createelement(name_space, tag_name);
3719: nnm := xmldom.getattributes(top_node);
3720:
3721: IF (xmldom.isnull(nnm) = FALSE)
3722: THEN
3723: len2 := xmldom.getlength(nnm);
3724:
3725: FOR i IN 0 .. len2 - 1
3719: nnm := xmldom.getattributes(top_node);
3720:
3721: IF (xmldom.isnull(nnm) = FALSE)
3722: THEN
3723: len2 := xmldom.getlength(nnm);
3724:
3725: FOR i IN 0 .. len2 - 1
3726: LOOP
3727: n := xmldom.item(nnm, i);
3723: len2 := xmldom.getlength(nnm);
3724:
3725: FOR i IN 0 .. len2 - 1
3726: LOOP
3727: n := xmldom.item(nnm, i);
3728: attrname := xmldom.getnodename(n);
3729: attrval := xmldom.getnodevalue(n);
3730: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3731: END LOOP;
3724:
3725: FOR i IN 0 .. len2 - 1
3726: LOOP
3727: n := xmldom.item(nnm, i);
3728: attrname := xmldom.getnodename(n);
3729: attrval := xmldom.getnodevalue(n);
3730: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3731: END LOOP;
3732: END IF;
3725: FOR i IN 0 .. len2 - 1
3726: LOOP
3727: n := xmldom.item(nnm, i);
3728: attrname := xmldom.getnodename(n);
3729: attrval := xmldom.getnodevalue(n);
3730: jdr_docbuilder.setattribute(top_element, attrname, attrval);
3731: END LOOP;
3732: END IF;
3733: