13: counter number(38);
14: complexID varchar2(200);
15: BEGIN
16: sqlStmtBase := 'from xdb.xdb$complex_type ct where ( sys_op_r2o(ct.xmldata.all_kid) =';
17: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
18: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.choice_kid) = ';
19: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
20: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.sequence_kid) = ';
21: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
15: BEGIN
16: sqlStmtBase := 'from xdb.xdb$complex_type ct where ( sys_op_r2o(ct.xmldata.all_kid) =';
17: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
18: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.choice_kid) = ';
19: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
20: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.sequence_kid) = ';
21: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
22: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.group_kid) = ';
23: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
17: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
18: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.choice_kid) = ';
19: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
20: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.sequence_kid) = ';
21: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
22: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.group_kid) = ';
23: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
24: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.sequence_kid) = ';
25: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
19: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
20: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.sequence_kid) = ';
21: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
22: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.group_kid) = ';
23: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
24: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.sequence_kid) = ';
25: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
26: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.choice_kid) = ';
27: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
21: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
22: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.group_kid) = ';
23: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
24: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.sequence_kid) = ';
25: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
26: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.choice_kid) = ';
27: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
28: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.all_kid) = ';
29: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
23: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
24: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.sequence_kid) = ';
25: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
26: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.choice_kid) = ';
27: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
28: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.all_kid) = ';
29: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
30: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
31: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
25: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
26: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.choice_kid) = ';
27: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
28: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.all_kid) = ';
29: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
30: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
31: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
32: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.sequence_kid) = ';
33: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
27: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
28: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.all_kid) = ';
29: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
30: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
31: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
32: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.sequence_kid) = ';
33: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
34: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.choice_kid) = ';
35: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
29: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
30: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
31: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
32: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.sequence_kid) = ';
33: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
34: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.choice_kid) = ';
35: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
36: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.all_kid) = ';
37: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
31: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
32: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.sequence_kid) = ';
33: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
34: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.choice_kid) = ';
35: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
36: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.all_kid) = ';
37: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
38: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
39: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
33: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
34: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.choice_kid) = ';
35: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
36: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.all_kid) = ';
37: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
38: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
39: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
40: sqlStmtBase := sqlStmtBase || ' )';
41:
35: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
36: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.all_kid) = ';
37: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
38: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
39: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
40: sqlStmtBase := sqlStmtBase || ' )';
41:
42: sqlStmt := ' select count(*) ' || sqlStmtBase;
43: EXECUTE IMMEDIATE sqlStmt INTO counter ;
45: sqlStmt := 'select ct.sys_nc_oid$ ' || sqlStmtBase;
46: EXECUTE IMMEDIATE sqlStmt INTO complexID ;
47:
48: sqlStmt := ' select hextoraw(e.xmldata.property.prop_number) from xdb.xdb$element e where sys_op_r2o(e.xmldata.property.type_ref) = ';
49: sqlStmt := sqlStmt || Dbms_Assert.Enquote_Literal(complexID);
50: sqlStmt := sqlStmt ;
51: counter := 1;
52: OPEN cur0 FOR sqlStmt;
53: LOOP
97: RETURN NULL;
98: END IF;
99: -- choice
100: sqlStmtBase := 'from xdb.xdb$choice_model sm, table(sm.xmldata.groups) t where sys_op_r2o(t.column_value) = ';
101: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
102: sqlStmt := ' select count(*) ' || sqlStmtBase;
103: EXECUTE IMMEDIATE sqlStmt INTO counter ;
104: IF ( counter <> 0 ) THEN
105: sqlStmt := ' select sm.sys_nc_oid$ ' || sqlStmtBase;
106: EXECUTE IMMEDIATE sqlStmt INTO modelID ;
107: choiceKid := TRUE;
108: ELSE
109: sqlStmtBase := 'from xdb.xdb$sequence_model sm, table(sm.xmldata.groups) t where sys_op_r2o(t.column_value) = ';
110: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
111: sqlStmt := ' select count(*) ' || sqlStmtBase;
112: EXECUTE IMMEDIATE sqlStmt INTO counter ;
113: IF ( counter <> 0 ) THEN
114:
116: EXECUTE IMMEDIATE sqlStmt INTO modelID ;
117: seqKid := TRUE;
118: ELSE
119: sqlStmtBase := 'from xdb.xdb$all_model sm, table(sm.xmldata.groups) t where sys_op_r2o(t.column_value) = ';
120: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
121: sqlStmt := ' select count(*) ' || sqlStmtBase;
122: IF ( counter <> 0 ) THEN
123:
124: sqlStmt := ' select sm.sys_nc_oid$ ' || sqlStmtBase;
127: ELSE
128: -- could be a direct child
129: sqlStmtBase := 'from xdb.xdb$complex_type ct where ( ';
130: sqlStmtBase := sqlStmtBase || ' sys_op_r2o(ct.xmldata.group_kid) = ';
131: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
132: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
133: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
134: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
135: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
129: sqlStmtBase := 'from xdb.xdb$complex_type ct where ( ';
130: sqlStmtBase := sqlStmtBase || ' sys_op_r2o(ct.xmldata.group_kid) = ';
131: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
132: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
133: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
134: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
135: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
136: sqlStmtBase := sqlStmtBase || ' )';
137:
131: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
132: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.extension.group_kid) = ';
133: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
134: sqlStmtBase := sqlStmtBase || ' OR sys_op_r2o(ct.xmldata.complexcontent.restriction.group_kid) = ';
135: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(elementID);
136: sqlStmtBase := sqlStmtBase || ' )';
137:
138: sqlStmt := ' select count(*) ' || sqlStmtBase;
139: DBMS_OUTPUT.PUT_LINE ( sqlStmt);
142: sqlStmt := 'select ct.sys_nc_oid$ ' || sqlStmtBase;
143: EXECUTE IMMEDIATE sqlStmt INTO complexID ;
144:
145: sqlStmt := ' select hextoraw(e.xmldata.property.prop_number) from xdb.xdb$element e where sys_op_r2o(e.xmldata.property.type_ref) = ';
146: sqlStmt := sqlStmt || Dbms_Assert.Enquote_Literal(complexID);
147: sqlStmt := sqlStmt ;
148:
149: counter := 1;
150: OPEN cur0 FOR sqlStmt;
174: END IF;
175:
176: counter := 0;
177: sqlStmtBase := 'table(sm.xmldata.' || kidClause || ')t where sys_op_r2o(t.column_value) = ';
178: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
179: sqlStmt := 'select count(*) from xdb.xdb$choice_model sm, ' || sqlStmtBase;
180: EXECUTE IMMEDIATE sqlStmt INTO counter ;
181: IF (counter <> 0) THEN
182: sqlStmt := 'select sm.sys_nc_oid$ from xdb.xdb$choice_model sm, ' || sqlStmtBase;
262: END IF;
263:
264: counter := 0;
265: sqlStmtBase := 'table(sm.xmldata.' || kidClause || ')t where sys_op_r2o(t.column_value) = ';
266: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
267: sqlStmt := 'select count(*) from xdb.xdb$choice_model sm, ' || sqlStmtBase;
268: EXECUTE IMMEDIATE sqlStmt INTO counter ;
269: IF (counter <> 0) THEN
270: sqlStmt := 'select sm.sys_nc_oid$ from xdb.xdb$choice_model sm, ' || sqlStmtBase;
289: ELSIF (choiceKid = TRUE) THEN kidClause := 'choice_kid';
290: ELSE kidClause := 'all_kid';
291: END IF;
292: sqlStmtBase := ' from xdb.xdb$group_def sm where sys_op_r2o(sm.xmldata. ' || kidClause || ') =';
293: sqlStmtBase := sqlStmtBase || Dbms_Assert.Enquote_Literal(modelID);
294: sqlStmt := 'select count(*) ' || sqlStmtBase;
295: EXECUTE IMMEDIATE sqlStmt INTO counter ;
296: IF (counter <> 0) THEN
297: sqlStmt := 'select sm.sys_nc_oid$ ' || sqlStmtBase;