DBA Data[Home] [Help]

PACKAGE: XDB.DBMS_XMLDOM

Source


1 PACKAGE     dbms_xmldom AUTHID CURRENT_USER IS
2 
3 ----------------------------------------------------------------------
4 -- DOM API
5 ----------------------------------------------------------------------
6 
7 ----------------------------------------------------------------------
8 -- Constants and Type Declarations
9 ----------------------------------------------------------------------
10 
11 --
12 -- DOM Node types (as returned by getNodeType)
13 --
14 ELEMENT_NODE CONSTANT PLS_INTEGER                := 1;
15 ATTRIBUTE_NODE CONSTANT PLS_INTEGER              := 2;
16 TEXT_NODE CONSTANT PLS_INTEGER                   := 3;
17 CDATA_SECTION_NODE CONSTANT PLS_INTEGER          := 4;
18 ENTITY_REFERENCE_NODE CONSTANT PLS_INTEGER       := 5;
19 ENTITY_NODE CONSTANT PLS_INTEGER                 := 6;
20 PROCESSING_INSTRUCTION_NODE CONSTANT PLS_INTEGER := 7;
21 COMMENT_NODE CONSTANT PLS_INTEGER                := 8;
22 DOCUMENT_NODE CONSTANT PLS_INTEGER               := 9;
23 DOCUMENT_TYPE_NODE CONSTANT PLS_INTEGER          := 10;
24 DOCUMENT_FRAGMENT_NODE CONSTANT PLS_INTEGER      := 11;
25 NOTATION_NODE CONSTANT PLS_INTEGER               := 12;
26 
27 --
28 -- DOMException types
29 --
30 INDEX_SIZE_ERR              EXCEPTION;
31 DOMSTRING_SIZE_ERR          EXCEPTION;
32 HIERARCHY_REQUEST_ERR       EXCEPTION;
33 WRONG_DOCUMENT_ERR          EXCEPTION;
34 INVALID_CHARACTER_ERR       EXCEPTION;
35 NO_DATA_ALLOWED_ERR         EXCEPTION;
36 NO_MODIFICATION_ALLOWED_ERR EXCEPTION;
37 NOT_FOUND_ERR               EXCEPTION;
38 NOT_SUPPORTED_ERR           EXCEPTION;
39 INUSE_ATTRIBUTE_ERR         EXCEPTION;
40 INVALID_STATE_ERR           EXCEPTION;
41 SYNTAX_ERR                  EXCEPTION;
42 INVALID_MODIFICATION_ERR    EXCEPTION;
43 NAMESPACE_ERR               EXCEPTION;
44 INVALID_ACCESS_ERR          EXCEPTION;
45 
46 --
47 -- DOM interface types
48 --
49 SUBTYPE domtype IS RAW(13);
50 
51 TYPE DOMNode IS RECORD (id RAW(13));
52 TYPE DOMNamedNodeMap IS RECORD (id RAW(13));
53 TYPE DOMNodeList IS RECORD (id RAW(13));
54 TYPE DOMAttr IS RECORD (id RAW(13));
55 TYPE DOMCDataSection IS RECORD (id RAW(13));
56 TYPE DOMCharacterData IS RECORD (id RAW(13));
57 TYPE DOMComment IS RECORD (id RAW(13));
58 TYPE DOMDocumentFragment IS RECORD (id RAW(13));
59 TYPE DOMElement IS RECORD (id RAW(13));
60 TYPE DOMEntity IS RECORD (id RAW(13));
61 TYPE DOMEntityReference IS RECORD (id RAW(13));
62 TYPE DOMNotation IS RECORD (id RAW(13));
63 TYPE DOMProcessingInstruction IS RECORD (id RAW(13));
64 TYPE DOMText IS RECORD (id RAW(13));
65 TYPE DOMImplementation IS RECORD (id RAW(13));
66 TYPE DOMDocumentType IS RECORD (id RAW(13));
67 TYPE DOMDocument IS RECORD (id RAW(13));
68 TYPE DOMStreamHandle IS RECORD (id RAW(12));
69 /*
70 SUBTYPE DOMNode IS domtype;
71 SUBTYPE DOMNamedNodeMap IS domtype;
72 SUBTYPE DOMNodeList IS domtype;
73 SUBTYPE DOMAttr IS domtype;
74 SUBTYPE DOMCDataSection IS domtype;
75 SUBTYPE DOMCharacterData IS domtype;
76 SUBTYPE DOMComment IS domtype;
77 SUBTYPE DOMDocumentFragment IS domtype;
78 SUBTYPE DOMElement IS domtype;
79 SUBTYPE DOMEntity IS domtype;
80 SUBTYPE DOMEntityReference IS domtype;
81 SUBTYPE DOMNotation IS domtype;
82 SUBTYPE DOMProcessingInstruction IS domtype;
83 SUBTYPE DOMText IS domtype;
84 SUBTYPE DOMImplementation IS domtype;
85 SUBTYPE DOMDocumentType IS domtype;
86 SUBTYPE DOMDocument IS domtype;
87 */
88 
89 -----------------------------------------------------------------------------
90 -- Public Interface
91 ----------------------------------------------------------------------------
92 
93 ---------------------------------------------------------------------------
94 -- Interface DOMImplementation:
95 --
96 --    hasFeature
97 --    createDocument
98 --
99 --    implementation_isNull (Extension)
100 --
101 ---------------------------------------------------------------------------
102 
103 
104 /**
105  * DOM DOMImplementation interface methods
106  * These methods implement the DOM DOMImplementation interface as specified in:
107  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490
108  */
109 FUNCTION hasFeature(di DOMImplementation, feature IN VARCHAR2,
110                     version IN VARCHAR2) RETURN BOOLEAN;
111 
112 FUNCTION createDocument(namespaceURI IN VARCHAR2, qualifiedName IN VARCHAR2,
113                         doctype IN DOMType := NULL) RETURN DOMDocument;
114 
115 /**
116  * DOM Node XDK interface methods
117  */
118 
119 -- Check validity of object
120 FUNCTION isNull(di DOMImplementation) RETURN BOOLEAN;
121 
122 
123 ---------------------------------------------------------------------------
124 -- DOM Node interface:
125 --
126 --    getNodeName
127 --    getNodeValue
128 --    setNodeValue
129 --    getNodeType
130 --    getParentNode
131 --    getChildNodes
132 --    getFirstChild
133 --    getLastChild
134 --    getPreviousSibling
135 --    getNextSibling
136 --    getAttributes
137 --    getOwnerDocument
138 --    getPrefix
139 --    setPrefix
140 --    insertBefore
141 --    replaceChild
142 --    removeChild
143 --    appendChild
144 --    hasChildNodes
145 --    cloneNode
146 
147 --    node_isNull (Extension)
148 --    writeToFile (Extension)
149 --    node_writeToBuffer (Extension)
150 --    node_writeToClob (Extension)
151 --    getNodeFromFragment (Extension)
152 --    writeToFile (given charset, Extension)
153 --    writeToBuffer (given charset, Extension)
154 --    writeToClob (given charset, Extension)
155 --    makeAttr (Extension)
156 --    makeCDataSection (Extension)
157 --    makeCharacterData (Extension)
158 --    makeComment (Extension)
159 --    makeDocumentFragment (Extension)
160 --    makeDocumentType (Extension)
161 --    makeElement (Extension)
162 --    makeEntity (Extension)
163 --    makeEntityReference (Extension)
164 --    makeNotation (Extension)
165 --    makeProcessingInstruction (Extension)
166 --    makeText (Extension)
167 --    makeDocument (Extension)
168 --    getSchemaNode (Extension)
169 --    freeNode (Extension)
170 
171 --    numChildNodes (available for C wrapper)
172 --    getQualifiedName (available for C wrapper)
173 --    getNodeNameSpace (available for C wrapper)
174 --    getNodePrefix (available for C wrapper)
175 --    getNodeLocal (available for C wrapper)
176 ---------------------------------------------------------------------------
177 --
178 
179 /**
180  * DOM Node interface methods
181  * These methods implement the DOM Node interface as specified in:
182  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247
183  */
184 FUNCTION getNodeName(n DOMNode) RETURN VARCHAR2;
185 FUNCTION getNodeValue(n domnode) RETURN VARCHAR2;
186 PROCEDURE setNodeValue(n DOMNode, nodeValue IN VARCHAR2);
187 FUNCTION getNodeType(n DOMNode) RETURN pls_INTEGER;
188 FUNCTION getParentNode(n DOMNode) RETURN DOMNode;
189 
190 -- FUNCTION domnode_getChildNodes (n IN domnode) RETURN DOMNodeList;
191 FUNCTION getChildNodes(n DOMNode) RETURN DOMNodeList;
192 
193 FUNCTION getFirstChild(n DOMNode) RETURN DOMNode;
194 FUNCTION getLastChild(n DOMNode) RETURN DOMNode;
195 FUNCTION getPreviousSibling(n DOMNode) RETURN DOMNode;
196 FUNCTION getNextSibling(n DOMNode) RETURN DOMNode;
197 FUNCTION getAttributes(n DOMNode) RETURN DOMNamedNodeMap;
198 FUNCTION getOwnerDocument(n DOMNode) RETURN DOMDocument;
199 FUNCTION getPrefix(n domnode) RETURN VARCHAR2;
200 FUNCTION getNodeFromFragment (fragment IN sys.xmltype) return DOMNode;
201 PROCEDURE setPrefix(n DOMNode, prefix IN VARCHAR2);
202 FUNCTION insertBefore(n DOMNode, newChild IN DOMNode, refChild IN DOMNode)
203 RETURN DOMNode;
204 FUNCTION replaceChild(n DOMNode, newChild IN DOMNode, oldChild IN DOMNode)
205 RETURN DOMNode;
206 FUNCTION removeChild(n DOMNode, oldChild IN DOMNode) RETURN DOMNode;
207 FUNCTION appendChild(n DOMNode, newChild IN DOMNode) RETURN DOMNode;
208 FUNCTION hasChildNodes(n DOMNode) RETURN BOOLEAN;
209 FUNCTION hasAttributes(n DOMNode) RETURN BOOLEAN;
210 FUNCTION cloneNode(n DOMNode, deep boolean) RETURN DOMNode;
211 
212 /**
213  * DOM Node XDK interface methods
214  */
215 
216 -- Check validity of object
217 FUNCTION isNull(n DOMNode) RETURN BOOLEAN;
218 
219 -- Write DOMNode object using the database character set
220 PROCEDURE writeToFile(n DOMNode, fileName VARCHAR2);
221 PROCEDURE writeToBuffer(n DOMNode, buffer IN OUT VARCHAR2);
222 PROCEDURE writeToClob(n DOMNode, cl IN OUT CLOB);
223 
224 -- Write DOMNode object using database character set and Print Options
225 PROCEDURE writeToFile(n DOMNode, fileName VARCHAR2,
226                       pflag IN NUMBER, indent IN NUMBER);
227 PROCEDURE writeToBuffer(n DOMNode, buffer IN OUT VARCHAR2,
228                        pflag IN NUMBER, indent IN NUMBER);
229 PROCEDURE writeToClob(n DOMNode, cl IN OUT CLOB,
230                       pflag IN NUMBER, indent IN NUMBER);
231 
232 -- Write DOMNode object using the specified character set
233 PROCEDURE writeToFile(n DOMNode, fileName VARCHAR2, charset VARCHAR2);
234 PROCEDURE writeToBuffer(n DOMNode, buffer IN OUT VARCHAR2, charset VARCHAR2);
235 PROCEDURE writeToClob(n DOMNode, cl IN OUT CLOB, charset VARCHAR2);
236 
237 -- Write DOMNode object using the specified character set and print options
238 PROCEDURE writeToFile(n DOMNode, fileName VARCHAR2, charset VARCHAR2,
239                       pflag IN NUMBER, indent IN NUMBER);
240 PROCEDURE writeToBuffer(n DOMNode, buffer IN OUT VARCHAR2, charset VARCHAR2,
241                        pflag IN NUMBER, indent IN NUMBER);
242 PROCEDURE writeToClob(n DOMNode, cl IN OUT CLOB, charset VARCHAR2,
243                       pflag IN NUMBER, indent IN NUMBER);
244 
245 -- Cast DOMNode objects
246 FUNCTION makeAttr(n DOMNode) RETURN DOMAttr;
247 FUNCTION makeCDataSection(n DOMNode) RETURN DOMCDataSection;
248 FUNCTION makeCharacterData(n DOMNode) RETURN DOMCharacterData;
249 FUNCTION makeComment(n DOMNode) RETURN DOMComment;
250 FUNCTION makeDocumentFragment(n DOMNode) RETURN DOMDocumentFragment;
251 FUNCTION makeDocumentType(n DOMNode) RETURN DOMDocumentType;
252 FUNCTION makeElement(n DOMNode) RETURN DOMElement;
253 FUNCTION makeEntity(n DOMNode) RETURN DOMEntity;
254 FUNCTION makeEntityReference(n DOMNode) RETURN DOMEntityReference;
255 FUNCTION makeNotation(n DOMNode) RETURN DOMNotation;
256 FUNCTION makeProcessingInstruction(n DOMNode) RETURN DOMProcessingInstruction;
257 FUNCTION makeText(n DOMNode) RETURN DOMText;
258 FUNCTION makeDocument(n DOMNode) RETURN DOMDocument;
259 
260 FUNCTION  getSchemaNode(n DOMnode) RETURN DOMnode;
261 PROCEDURE getNamespace(n DOMnode, data IN OUT VARCHAR2);
262 PROCEDURE getLocalName(n DOMnode, data OUT VARCHAR2);
263 PROCEDURE getExpandedName(n DOMnode, data OUT VARCHAR2);
264 PROCEDURE freeNode(n DOMnode);
265 
266 
267 
268 -------------------------------------------------------------------------------
269 -- The following functions and procedures are added to support the 4 Streaming
270 -- models defined for Large Node access
271 -------------------------------------------------------------------------------
272 -- Get-Pull methods
273 -------------------------------------------------------------------------------
274 FUNCTION getNodeValueAsBinaryStream (n in domnode)
275                                         return sys.utl_BinaryInputStream;
276 FUNCTION getNodeValueAsCharacterStream (n      in domnode)
277                                         return sys.utl_CharacterInputStream;
278 ----------------------------------------------------------------------------
279 -- Get-Push methods
280 ----------------------------------------------------------------------------
281 PROCEDURE getNodeValueAsBinaryStream (n         in domnode,
282                                       pushValue in out sys.utl_BinaryOutputStream);
283 PROCEDURE getNodeValueAsCharacterStream (n         in domnode,
284                                          pushValue in out sys.utl_CharacterOutputStream);
285 ----------------------------------------------------------------------------
286 -- Set-Pull methods
287 ----------------------------------------------------------------------------
288 PROCEDURE setNodeValueAsBinaryStream (n         in domnode,
289                                       nodeValue in out sys.utl_BinaryInputStream);
290 PROCEDURE setNodeValueAsCharacterStream (n         in domnode,
291                                       nodeValue in out sys.utl_CharacterInputStream);
292 ----------------------------------------------------------------------------
293 -- "Deferred" Set-Pull
294 ----------------------------------------------------------------------------
295 PROCEDURE setNodeValueAsDeferredBfile (n     in domnode,
296                                        value in bfile);
297 PROCEDURE setNodeValueAsDeferredBlob (n     in domnode,
298                                       value in blob);
299 PROCEDURE setNodeValueAsDeferredClob (n     in domnode,
300                                       value in clob);
301 ----------------------------------------------------------------------------
302 -- Set-Push methods
303 ----------------------------------------------------------------------------
304 FUNCTION setNodeValueAsBinaryStream (n in domnode) return                                     sys.utl_BinaryOutputStream;
305 FUNCTION setNodeValueAsCharacterStream (n in domnode) return
306                                      sys.utl_CharacterOutputStream;
307 ----------------------------------------------------------------------------
308 -- Determining if use of Binary Stream is valid
309 ----------------------------------------------------------------------------
310 FUNCTION useBinaryStream (n in domnode) return boolean;
311 FUNCTION xmld_useBinStream (n in raw) return boolean;
312 ----------------------------------------------------------------------------
313 -- XMLBinaryInputStream methods
314 ----------------------------------------------------------------------------
315 FUNCTION createXMLBinaryInputStream (n in raw) return raw;
316 FUNCTION BinaryInputStreamAvailable (handle in raw) return integer;
317 PROCEDURE readBytesFromBIS1 (   handle in RAW,
318                                 bytes in out raw
319 --                                offset in pls_integer,
320 --                                numBytes in pls_integer
321 );
322 
323 FUNCTION readBinaryInputStream (handle   in raw,
324                                 numBytes in integer) return raw;
325 PROCEDURE readBinaryInputStream (handle   in            raw,
326                                  bytes    in out nocopy raw,
327                                  numBytes in out        integer);
328 PROCEDURE readBinaryInputStream (handle   in            raw,
329                                  bytes    in out nocopy raw,
330                                  offset   in            integer,
331                                  numBytes in out        integer);
332 PROCEDURE closeBinaryInputStream (handle in raw);
333 ----------------------------------------------------------------------------
334 -- XMLBinaryOutputStream methods
335 ----------------------------------------------------------------------------
336 FUNCTION createXMLBinaryOutputStream (n in raw) return raw;
337 FUNCTION writeBinaryOutputStream (handle   in            raw,
338                                   bytes    in out nocopy raw,
339                                   numBytes in            integer)
340                             return integer;
341 PROCEDURE writeBinaryOutputStream (handle   in            raw,
342                                    bytes    in out nocopy raw,
343                                    numBytes in out        integer);
344 PROCEDURE writeBinaryOutputStream (handle   in            raw,
345                                    bytes    in out nocopy raw,
346                                    offset   in            integer,
347                                    numBytes in out        integer);
348 PROCEDURE flushBinaryOutputStream (handle in raw);
349 PROCEDURE closeBinaryOutputStream (handle in raw);
350 ----------------------------------------------------------------------------
351 -- XMLCharacterInputStream methods
352 ----------------------------------------------------------------------------
353 FUNCTION createXMLCharacterInputStream (n in raw) return raw;
354 FUNCTION CharacterInputStreamAvailable (handle in raw) return integer;
355 FUNCTION readCharacterInputStream (handle   in raw,
356                                    numChars in integer,
357                                    lineFeed in boolean) return varchar2;
358 PROCEDURE readCharacterInputStream (handle   in            raw,
359                                     chars    in out nocopy varchar2,
360                                     numChars in out        integer,
361                                     lineFeed in            boolean);
362 PROCEDURE readCharacterInputStream (handle   in            raw ,
363                                     chars    in out nocopy varchar2,
364                                     offset   in            integer ,
365                                     numChars in out        integer,
366                                     lineFeed in            boolean);
367 PROCEDURE closeCharacterInputStream (handle in raw);
368 ----------------------------------------------------------------------------
369 -- XMLCharacterOutputStream methods
370 ----------------------------------------------------------------------------
371 FUNCTION createXMLCharacterOutputStream (n in raw) return raw;
372 FUNCTION writeCharacterOutputStream (handle   in            raw,
373                                      chars    in out nocopy varchar2,
374                                      numChars in            integer,
375                                      lineFeed in            boolean) return integer;
376 
377 PROCEDURE writeCharacterOutputStream (handle   in            raw,
378                                       chars    in out nocopy varchar2,
379                                       numChars in out        integer,
380                                       lineFeed in            boolean);
381 
382 PROCEDURE writeCharacterOutputStream (handle   in            raw,
383                                       chars    in out nocopy varchar2,
384                                       offset   in            integer,
385                                       numChars in out        integer,
386                                       lineFeed in            boolean);
387 
388 PROCEDURE flushCharacterOutputStream (handle in raw);
389 PROCEDURE closeCharacterOutputStream (handle in raw);
390 
391 ----------------------------------------------------------------------------
392 -- isNull methods
393 ----------------------------------------------------------------------------
394 
395 FUNCTION StreamIsNull(handle raw)  RETURN BOOLEAN;
396 
397 ---------------------------------------------------------------------------
398 -- DOM NodeList interface:
399 --
400 --    nodelist_item
401 --    nodelist_getLength
402 
403 --    nodelist_isNull (Extension)
404 
405 --   freeNodeList (Extension)
406 ---------------------------------------------------------------------------
407 
408 /**
409  * DOM NodeList interface methods
410  * These methods implement the DOM NodeList interface as specified in:
411  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-536297177
412 */
413 
414  -- item:
415  --
416  -- Get the indexth item in the collection.  If index is greater than or
417  -- equal to the number of nodes in the list, this returns null.
418  --
419  -- PARAMETERS
420  --      nl       - input DOM node list
421  --      idx      - index into the list
422  -- RETURN
423  --      indexed child node
424  -- EXCEPTIONS
425  --   <exception name> - <description>
426  -- NOTES
427  --
428  --
429  -- FUNCTION domnodel_item (nl IN DOMNodeList,
430  --                         idx IN PLS_INTEGER) RETURN DOMNode;
431 FUNCTION item(nl DOMNodeList, idx IN PLS_INTEGER) RETURN DOMNode;
432 
433 FUNCTION getLength(nl DOMNodeList) RETURN pls_INTEGER;
434 
435 /**
436  * DOM Node XDK interface methods
437  */
438 
439 -- Check validity of object
440 FUNCTION isNull(nl DOMNodeList) RETURN BOOLEAN;
441 
442 
443 PROCEDURE freeNodeList(nl DOMNodeList);
444 ---------------------------------------------------------------------------
445 -- DOM NamedNodeMap interface:
446 --
447 --    getNamedItem
448 --    setNamedItem
449 --    removeNamedItem
450 --    namednodemap_item
451 --    namednodemap_getLength
452 
453 --    namednodemap_isNull (Extension)
454 
455 ---------------------------------------------------------------------------
456 
457 /**
458  * DOM Node interface methods
459  * These methods implement the DOM Node interface as specified in:
460  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247
461  */
462 
463 FUNCTION getNamedItem(nnm DOMNamedNodeMap, name IN VARCHAR2) RETURN DOMNode;
464 FUNCTION getNamedItem(nnm DOMNamedNodeMap, name IN VARCHAR2,
465                       ns IN VARCHAR2) RETURN DOMNode;
466 FUNCTION setNamedItem(nnm DOMNamedNodeMap, arg IN DOMNode) RETURN DOMNode;
467 FUNCTION setNamedItem(nnm DOMNamedNodeMap, arg IN DOMNode,
468                       ns IN VARCHAR2) RETURN DOMNode;
469 FUNCTION removeNamedItem(nnm DOMNamedNodeMap, name IN VARCHAR2) RETURN DOMNode;
470 FUNCTION removeNamedItem(nnm DOMNamedNodeMap, name IN VARCHAR2,
471                          ns IN VARCHAR2) RETURN DOMNode;
472 FUNCTION item(nnm DOMNamedNodeMap, idx IN pls_integer)
473                            RETURN domNode;
474 FUNCTION getLength(nnm DOMNamedNodeMap) RETURN pls_integer;
475 
476 /**
477  * DOM Node XDK interface methods
478  */
479 
480 -- Check validity of object
481 FUNCTION isNull(nnm DOMNamedNodeMap) RETURN BOOLEAN;
482 
483 
484 ---------------------------------------------------------------------------
485 -- DOM Character Data interface:
486 --
487 --    cdata_getData
488 --    cdata_setData
489 --    cdata_getLength
490 --    substringData
491 --    appendData
492 --    insertData
493 --    deleteData
494 --    replaceData
495 --
496 --    cdata_isNull (extension)
497 --    cdata_makeNode (extension)
498 
499 ---------------------------------------------------------------------------
500 
501 /**
502  * DOM CharacterData interface methods
503  * These methods implement the DOM CharacterData interface as specified in:
504  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-FF21A306
505  */
506 
507  -- getData:
508  --
509  -- Get data for character node
510  --
511  -- PARAMETERS
512  --      cd       - input DOM Character node
513  -- RETURN
514  --      data for character node
515  -- EXCEPTIONS
516  --   <exception name> - <description>
517  -- NOTES
518  --      Returns data for character node, or NULL if node isn't
519  --      character-type.
520  --
521  -- PROCEDURE domcdata_getCharData (cd IN DOMNode, data OUT VARCHAR2);
522 FUNCTION getData(cd domcharacterdata) return VARCHAR2;
523 
524 PROCEDURE setData(cd DOMCharacterData, data IN VARCHAR2);
525 FUNCTION getLength(cd DOMCharacterData) RETURN pls_integer;
526 FUNCTION substringData(cd DOMCharacterData, offset IN PLS_INTEGER,
527                         cnt IN PLS_integer) RETURN VARCHAR2;
528 PROCEDURE appendData(cd DOMCharacterData, arg IN VARCHAR2);
529 PROCEDURE insertData(cd DOMCharacterData, offset IN PLS_INTEGER, arg IN VARCHAR2);
530 PROCEDURE deleteData(cd DOMCharacterData, offset IN PLS_INTEGER, cnt IN PLS_INTEGER);
531 PROCEDURE replaceData(cd DOMCharacterData, offset IN PLS_INTEGER,
532                       cnt IN PLS_INTEGER, arg IN VARCHAR2);
533 
534 /**
535  * DOM Node XDK interface methods
536  */
537 
538 -- Check validity of object
539 FUNCTION isNull(cd DOMCharacterData) RETURN BOOLEAN;
540 
541 -- Cast
542 FUNCTION makeNode(cd DOMCharacterData) RETURN DOMNode;
543 
544 
545 ---------------------------------------------------------------------------
546 -- DOM Attribute interface:
547 --
548 --    getName
549 --    getOwnerElement
550 --    getSpecified
551 --    getValue
552 --    setValue
553 --
554 --    attr_isNull (Extension)
555 --    attr_makeNode (Extension)
556 --    attr_getQualifiedName (Extension)
557 --    attr_getNamespace (Extension)
558 --    attr_getLocalName (Extension)
559 --    attr_getExpandedName (Extension)
560 --
561 ---------------------------------------------------------------------------
562 
563 /**
564  * DOM interface methods
565  * These methods implement the DOM Node interface as specified in:
566  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247
567  */
568 
569 FUNCTION getName(a DOMAttr) return varchar2;
570 FUNCTION getOwnerElement(a DOMAttr) RETURN DOMElement;
571 FUNCTION getSpecified(a DOMAttr) RETURN BOOLEAN;
572 FUNCTION getValue (a IN DOMAttr) return varchar2;
573 PROCEDURE setValue(a DOMAttr, newvalue IN VARCHAR2);
574 
575 /**
576  * DOM XDK interface methods
577  */
578 
579 -- Check validity of object
580 FUNCTION isNull(a DOMAttr) RETURN BOOLEAN;
581 
582 -- Cast
583 FUNCTION makeNode(a DOMAttr) RETURN DOMNode;
584 
585 FUNCTION getQualifiedName(a DOMAttr) return varchar2;
586 FUNCTION getNamespace(a DOMAttr) return varchar2;
587 FUNCTION getLocalName(a DOMAttr) return varchar2;
588 FUNCTION getExpandedName(a DOMAttr) return varchar2;
589 
590 
591 ---------------------------------------------------------------------------
592 -- DOM Element interface:
593 --
594 --    getTagName
595 --    getAttribute
596 --    hasAttribute
597 --    setAttribute
598 --    removeAttribute
599 --    getAttributeNode
600 --    setAttributeNode
601 --    removeAttributeNode
602 --    element_getElementsByTagName
603 --
604 --    element_isNull (Extension)
605 --    element_makeNode (Extension)
606 --    normalize (extension)
607 --    element_getQualifiedName (extension)
608 --    element_getNamespace (extension)
609 --    element_getLocalName (extension)
610 --    element_getExpandedName (extension)
611 --    getChildrenByTagName (extension)
612 --    getChildrenByTagName (extension)
613 --    resolveNamespacePrefix (extension)
614 --    freeElement (extension)
615 --
616 ---------------------------------------------------------------------------
617 
618 /**
619  * DOM Element interface methods
620  * These methods implement the DOM Element interface as specified in:
621  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-745549614
622  */
623 
624 FUNCTION getTagName(elem DOMElement) return varchar2;
625 FUNCTION getAttribute(elem DOMElement, name IN VARCHAR2) return varchar2;
626 FUNCTION getAttribute(elem DOMElement, name IN VARCHAR2,
627                       ns IN VARCHAR2) return varchar2;
628 FUNCTION hasAttribute(elem DOMElement, name IN VARCHAR2) return BOOLEAN;
629 FUNCTION hasAttribute(elem DOMElement, name IN VARCHAR2,
630                       ns IN VARCHAR2) return BOOLEAN;
631 PROCEDURE setAttribute(elem DOMElement, name IN VARCHAR2, newvalue IN VARCHAR2);
632 PROCEDURE setAttribute(elem DOMElement, name IN VARCHAR2, newvalue IN VARCHAR2,
633                        ns IN VARCHAR2);
634 PROCEDURE removeAttribute(elem DOMElement, name IN VARCHAR2);
635 PROCEDURE removeAttribute(elem DOMElement, name IN VARCHAR2, ns IN VARCHAR2);
636 FUNCTION getAttributeNode(elem DOMElement, name IN VARCHAR2) RETURN DOMAttr;
637 FUNCTION getAttributeNode(elem DOMElement, name IN VARCHAR2,
638                           ns IN VARCHAR2) RETURN DOMAttr;
639 FUNCTION setAttributeNode(elem DOMElement, newAttr IN DOMAttr) RETURN DOMAttr;
640 FUNCTION setAttributeNode(elem DOMElement, newAttr IN DOMAttr,
641                           ns IN VARCHAR2) RETURN DOMAttr;
642 FUNCTION removeAttributeNode(elem DOMElement, oldAttr IN DOMAttr)
643 RETURN DOMAttr;
644 FUNCTION getElementsByTagName(elem DOMElement, name IN VARCHAR2)
645                               RETURN DOMNodeList;
646 PROCEDURE freeElement(elem DOMElement);
647 
648 /**
649  * DOM XDK interface methods
650  */
651 
652 -- Check validity of object
653 FUNCTION isNull(elem DOMElement) RETURN BOOLEAN;
654 
655 -- Cast
656 FUNCTION makeNode(elem DOMElement) RETURN domnode;
657 
658 PROCEDURE normalize(elem DOMElement);
659 FUNCTION getQualifiedName(elem DOMElement) return varchar2;
660 FUNCTION getNamespace(elem DOMElement) return varchar2;
661 FUNCTION getLocalName(elem DOMElement) return varchar2;
662 FUNCTION getExpandedName(elem DOMElement) return varchar2;
663 FUNCTION getChildrenByTagName(elem DOMElement, name varchar2)
664                               return DOMNodeList;
665 FUNCTION getChildrenByTagName(elem DOMElement, name varchar2, ns varchar2)
666                               return DOMNodeList;
667 FUNCTION getElementsByTagName(elem DOMElement, name IN VARCHAR2,
668                                         ns varchar2) RETURN DOMNodeList;
669 PROCEDURE resolveNamespacePrefix(elem DOMElement, prefix varchar2,
670                                                   data OUT VARCHAR2);
671 FUNCTION resolveNamespacePrefix(elem DOMElement, prefix varchar2)
672                                 return VARCHAR2;
673 
674 
675 ---------------------------------------------------------------------------
676 -- Interface DOMText:
677 --
678 --    splitText
679 --
680 --    text_isNull (extension)
681 --    text_makeNode (extension)
682 ---------------------------------------------------------------------------
683 
684 /**
685  * DOM Text interface methods
686  * These methods implement the DOM Text interface as specified in:
687  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1312295772
688 */
689 
690 FUNCTION splitText(t DOMText, offset IN PLS_INTEGER) RETURN DOMText;
691 
692 /**
693  * DOM XDK interface methods
694  */
695 
696 -- Check validity of object
697 FUNCTION isNull(t DOMText) RETURN BOOLEAN;
698 
699 -- Cast
700 FUNCTION makeNode(t DOMText) RETURN DOMNode;
701 
702 
703 ---------------------------------------------------------------------------
704 -- Interface DOMComment
705 --
706 --    comment_isNull (extension)
707 --    makeNode (extension)
708 --
709 ---------------------------------------------------------------------------
710 
711 /**
712  * DOM XDK interface methods
713  */
714 
715 -- Check validity of object
716 FUNCTION isNull(com DOMComment) RETURN BOOLEAN;
717 
718 -- Cast
719 FUNCTION makeNode(com DOMComment) RETURN DOMNode;
720 
721 
722 ---------------------------------------------------------------------------
723 -- Interface DOMCDATASection
724 --
725 --    cdatasection_isNull (extension)
726 --    makeNode (extension)
727 --
728 ---------------------------------------------------------------------------
729 
730 /**
731  * DOM XDK interface methods
732  */
733 
734 -- Check validity of object
735 FUNCTION isNull(cds DOMCDATASection) RETURN BOOLEAN;
736 
737 -- Cast
738 FUNCTION makeNode(cds DOMCDATASection) RETURN DOMNode;
739 
740 
741 ---------------------------------------------------------------------------
742 -- Interface Document Type:
743 --
744 --    getName
745 --    getEntities
746 --    getNotations
747 --    getpublicid (dom 2)
748 --    getsystemid (dom 2)
749 --
750 --    doctype_isNull (extension)
751 --    makeNode (extension)
752 --    findEntity (extension)
753 --    findNotation (extension)
754 --
755 ---------------------------------------------------------------------------
756 
757 /**
758  * DOM DocumentType interface methods
759  * These methods implement the DOM DocumentType interface as specified in:
760  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-412266927
761  */
762 FUNCTION getName(dt DOMDocumentType) return varchar2;
763 FUNCTION getEntities(dt DOMDocumentType) RETURN DOMNamedNodeMap;
764 FUNCTION getNotations(dt DOMDocumentType) RETURN DOMNamedNodeMap;
765 
766 -- DOM 2
767 FUNCTION getPublicId(dt DOMDocumentType) return varchar2;
768 FUNCTION getSystemId(dt DOMDocumentType) return varchar2;
769 
770 /**
771  * DOM XDK interface methods
772  */
773 
774 -- Check validity of object
775 FUNCTION isNull(dt DOMDocumentType) RETURN BOOLEAN;
776 
777 -- Cast
778 FUNCTION makeNode(dt DOMDocumentType) RETURN DOMNode;
779 
780 -- Other
781 FUNCTION findEntity(dt DOMDocumentType, name varchar2, par boolean)
782                     return DOMEntity;
783 FUNCTION findNotation(dt DOMDocumentType, name varchar2) return DOMNotation;
784 
785 ---------------------------------------------------------------------------
786 -- Interface DOMNotation
787 --
788 --    getPublicId
789 --    getSystemId
790 --
791 --    notation_isNull (extension)
792 --    makeNode (extension)
793 --
794 ---------------------------------------------------------------------------
795 
796 /**
797  * DOM Notation interface methods
798  * These methods implement the DOM Notation interface as specified in:
799  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5431D1B9
800  */
801 
802 FUNCTION getPublicId(n DOMNotation) return varchar2;
803 FUNCTION getSystemId(n DOMNotation) return varchar2;
804 
805 /**
806  * DOM XDK interface methods
807  */
808 
809 -- Check validity of object
810 FUNCTION isNull(n DOMNotation) RETURN BOOLEAN;
811 
812 -- Cast
813 FUNCTION makeNode(n DOMNotation) RETURN DOMNode;
814 
815 
816 ---------------------------------------------------------------------------
817 -- Interface DOMEntity:
818 --
819 --    getPublicID
820 --    getSystemID
821 --    getNotationName
822 --
823 --    entity_isNull (extension)
824 --    makeNode (extension)
825 --
826 ---------------------------------------------------------------------------
827 
828 /**
829  * DOM Entity interface methods
830  * These methods implement the DOM Entity interface as specified in:
831  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-527DCFF2
832  */
833 FUNCTION getPublicId(ent DOMEntity) return varchar2;
834 FUNCTION getSystemId(ent DOMEntity) return varchar2;
835 FUNCTION getNotationName(ent DOMEntity) return varchar2;
836 
837 /**
838  * DOM XDK interface methods
839  */
840 
841 -- Check validity of object
842 FUNCTION isNull(ent DOMEntity) RETURN BOOLEAN;
843 
844 -- Cast
845 FUNCTION makeNode(ent DOMEntity) RETURN DOMNode;
846 
847 
848 ---------------------------------------------------------------------------
849 -- Interface DOMEntityReference
850 --
851 --    entityref_isNull (extension)
852 --    makeNode (extension)
853 --
854 ---------------------------------------------------------------------------
855 
856 /**
857  * DOM XDK interface methods
858  */
859 
860 -- Check validity of object
861 FUNCTION isNull(eref DOMEntityReference) RETURN BOOLEAN;
862 
863 -- Cast
864 FUNCTION makeNode(eref DOMEntityReference) RETURN DOMNode;
865 
866 
867 ---------------------------------------------------------------------------
868 -- Interface Processing Instruction:
869 --
870 --    pi_getData
871 --    getTarget
872 --    pi_setData
873 --
874 --    pi_isNull (extension)
875 --    pi_makeNode (extension)
876 --
877 ---------------------------------------------------------------------------
878 
879 /**
880  * DOM ProcessingInstruction interface methods
881  * These methods implement the DOM ProcessingInstruction interface as
882  * specified in:
883  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1004215813
884  */
885 
886 FUNCTION getData(pi DOMProcessingInstruction) return varchar2;
887 FUNCTION getTarget(pi DOMProcessingInstruction) return varchar2;
888 PROCEDURE setData(pi DOMProcessingInstruction, data IN VARCHAR2);
889 
890 /**
891  * DOM XDK interface methods
892  */
893 
894 -- Check validity of object
895 FUNCTION isNull(pi DOMProcessingInstruction) RETURN BOOLEAN;
896 
897 -- Cast
898 FUNCTION makeNode(pi DOMProcessingInstruction) RETURN DOMNode;
899 
900 
901 ---------------------------------------------------------------------------
902 -- Interface DocumentFragment:
903 --
904 --    docfrag_isNull (extension)
905 --    makeNode (extension)
906 --
907 ----------------------------------------------------------------------------
908 
909 /**
910  * DOM XDK interface methods
911  */
912 
913 -- Check validity of object
914 FUNCTION isNull(df DOMDocumentFragment) RETURN BOOLEAN;
915 
916 -- Cast
917 FUNCTION makeNode(df DOMDocumentFragment) RETURN DOMNode;
918 
919 PROCEDURE writeToBuffer(df DOMDocumentFragment, buffer IN OUT VARCHAR2);
920 
921 PROCEDURE writeToBuffer(df DOMDocumentFragment, buffer IN OUT VARCHAR2,
922                         pflag IN NUMBER, indent IN NUMBER);
923 
924 ---------------------------------------------------------------------------
925 -- Interface DOMDocument:
926 --
927 --    getDoctype
928 --    setDoctype
929 --    getImplementation
930 --    getDocumentElement
931 --    createElement
932 --    createDocumentFragment
933 --    createComment
934 --    createTextNode
935 --    createCDATASection
936 --    createProcessingInstruction
937 --    createAttribute
938 --    createEntityReference
939 --    document_getElementsByTagName
940 --    importNode
941 --    adoptNode
942 --
943 --    document_isNull (extension)
944 --    document_makeNode (extension)
945 --    newDOMDocument (extension)
946 --    getVersion (extension)
947 --    setVersion (extension)
948 --    getCharset (extension)
949 --    setCharset (extension)
950 --    getStandalone (extension)
951 --    setStandalone (extension)
952 --    writeToFile (extension)
953 --    document_writeToBuffer (extension)
954 --    document_writeToClob (extension)
955 --    writeToFile (extension)
956 --    writeToBuffer (extension)
957 --    writeToClob (extension)
958 --    writeExternalDTDToFile (extension)
959 --    writeExternalDTDToBuffer (extension)
960 --    writeExternalDTDToClob (extension)
961 --    writeExternalDTDToFile (extension)
962 --    writeExternalDTDToBuffer (extension)
963 --    writeExternalDTDToClob (extension)
964 --    freeDocument (extension)
965 --
966 ---------------------------------------------------------------------------
967 
968 /**
969  * DOM Document interface methods
970  * These methods implement the DOM Document interface as specified in:
971  * http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#i-Document
972  */
973 
974 FUNCTION getDoctype(doc DOMDocument) RETURN DOMDocumentType;
975 PROCEDURE setDoctype(doc DOMDocument, name VARCHAR2,
976                      sysid VARCHAR2, pubid VARCHAR2);
977 FUNCTION getImplementation(doc DOMDocument) RETURN DOMImplementation;
978 FUNCTION getDocumentElement(doc DOMDocument) RETURN DOMElement;
979 FUNCTION createElement(doc DOMDocument, tagName IN VARCHAR2) RETURN DOMElement;
980 FUNCTION createElement(doc DOMDocument, tagName IN VARCHAR2,
981                        ns IN VARCHAR2) RETURN DOMElement;
982 FUNCTION createDocumentFragment(doc DOMDocument) RETURN DOMDocumentFragment;
983 FUNCTION createTextNode(doc DOMDocument, data IN VARCHAR2) RETURN DOMText;
984 FUNCTION createComment(doc DOMDocument, data IN VARCHAR2) RETURN DOMComment;
985 FUNCTION createCDATASection(doc DOMDocument, data IN VARCHAR2)
986                             RETURN DOMCDATASection;
987 FUNCTION createProcessingInstruction(doc DOMDocument, target IN VARCHAR2,
988                                      data IN VARCHAR2)
989                                      RETURN DOMProcessingInstruction;
990 FUNCTION createAttribute(doc DOMDocument, name IN VARCHAR2) RETURN DOMAttr;
991 FUNCTION createAttribute(doc DOMDocument, name IN VARCHAR2,
992                          ns IN VARCHAR2) RETURN DOMAttr;
993 FUNCTION createEntityReference(doc DOMDocument, name IN VARCHAR2)
994                                RETURN DOMEntityReference;
995 
996 FUNCTION getElementsByTagName(doc DOMDocument, tagname IN VARCHAR2)
997                                        RETURN DOMNodeList;
998  -------------------------getDocElementsByTagName--------------------------
999  -- Get element by tag name
1000  --
1001  -- PARAMETERS
1002  --      doc          - input DOM Document
1003  --      tagname      - tagname of new element.
1004  -- RETURN
1005  --      Elements list.
1006  -- EXCEPTIONS
1007  --   <exception name> - <description>
1008  -- NOTES
1009  --
1010  --
1011  -- FUNCTION domdoc_getElementsByTagName(doc IN DOMDocument,
1012  --                                      tagname IN VARCHAR2)
1013  --                                      RETURN DOMNodeList;
1014 
1015 /**
1016  * DOM XDK interface methods
1017  */
1018 
1019 -- Check validity of object
1020 FUNCTION isNull(doc DOMDocument) RETURN BOOLEAN;
1021 
1022 -- Cast
1023 FUNCTION makeNode(doc DOMDocument) RETURN DOMNode;
1024 
1025 -- New document
1026 FUNCTION newDOMDocument RETURN domdocument;
1027 FUNCTION newDOMDocument(xmldoc IN sys.xmltype) RETURN DOMDocument;
1028 ----------------------------------create----------------------------------
1029  -- Create domdocument given xmltype
1030  --
1031  -- PARAMETERS
1032  --      xmldoc       - input xmltype
1033  -- RETURN
1034  --      DOM Document
1035  -- EXCEPTIONS
1036  --   <exception name> - <description>
1037  -- NOTES
1038  --
1039  --
1040  -- FUNCTION domdoc_create(xmldoc IN sys.xmltype) RETURN DOMDocument;
1041 
1042 FUNCTION newDOMDocument(cl IN clob) RETURN domdocument;
1043 FUNCTION getxmltype(doc in DOMDocument) RETURN sys.xmltype;
1044 
1045 FUNCTION getVersion(doc DOMDocument) return varchar2;
1046 PROCEDURE setVersion(doc DOMDocument, version VARCHAR2);
1047 FUNCTION getCharset(doc DOMDocument) return varchar2;
1048 PROCEDURE setCharset(doc DOMDocument, charset VARCHAR2);
1049 FUNCTION getStandalone(doc DOMDocument) return varchar2;
1050 PROCEDURE setStandalone(doc DOMDocument, newvalue VARCHAR2);
1051 PROCEDURE writeToFile(doc DOMDocument, fileName VARCHAR2);
1052 PROCEDURE writeToBuffer(doc DOMDocument, buffer IN OUT VARCHAR2);
1053 PROCEDURE writeToClob(doc DOMDocument, cl IN OUT CLOB);
1054 PROCEDURE writeToFile(doc DOMDocument, fileName VARCHAR2,
1055                       pflag IN NUMBER, indent IN NUMBER);
1056 PROCEDURE writeToBuffer(doc DOMDocument, buffer IN OUT VARCHAR2,
1057                          pflag IN NUMBER, indent IN NUMBER);
1058 PROCEDURE writeToClob(doc DOMDocument, cl IN OUT CLOB,
1059                       pflag IN NUMBER, indent IN NUMBER);
1060 PROCEDURE writeToFile(doc DOMDocument, fileName VARCHAR2, charset VARCHAR2);
1061 PROCEDURE writeToBuffer(doc DOMDocument, buffer IN OUT VARCHAR2,
1062                         charset VARCHAR2);
1063 PROCEDURE writeToClob(doc DOMDocument, cl IN OUT CLOB, charset VARCHAR2);
1064 PROCEDURE writeToFile(doc DOMDocument, fileName VARCHAR2, charset VARCHAR2,
1065                       pflag IN NUMBER, indent IN NUMBER);
1066 PROCEDURE writeToBuffer(doc DOMDocument, buffer IN OUT VARCHAR2,
1067                         charset VARCHAR2, pflag IN NUMBER, indent IN NUMBER);
1068 PROCEDURE writeToClob(doc DOMDocument, cl IN OUT CLOB, charset VARCHAR2,
1069                          pflag IN NUMBER, indent IN NUMBER);
1070 PROCEDURE writeExternalDTDToFile(doc DOMDocument, fileName varchar2);
1071 PROCEDURE writeExternalDTDToBuffer(doc DOMDocument, buffer in out varchar2);
1072 PROCEDURE writeExternalDTDToClob(doc DOMDocument, cl in out clob);
1073 PROCEDURE writeExternalDTDToFile(doc DOMDocument, fileName varchar2,
1074                                  charset varchar2);
1075 PROCEDURE writeExternalDTDToBuffer(doc DOMDocument, buffer in out varchar2,
1076                                    charset varchar2);
1077 PROCEDURE writeExternalDTDToClob(doc DOMDocument, cl in out clob,
1078                                                   charset varchar2);
1079 
1080 PROCEDURE freeDocument(doc IN DOMDocument);
1081 PROCEDURE freeDocFrag(df IN DOMDocumentFragment);
1082 PROCEDURE freeDocType(dt IN DOMDocumentType);
1083 -- PROCEDURE domdoc_remove(doc IN domdocument);
1084 
1085 FUNCTION importnode(doc DOMDocument, importednode domnode, deep boolean)
1086                     RETURN DOMNode;
1087 FUNCTION adoptnode(doc DOMDocument, adoptednode domnode)
1088                    RETURN DOMNode;
1089 
1090 end dbms_xmldom;