libUPnP  1.8.0
ixml.h
Go to the documentation of this file.
1 /**************************************************************************
2  *
3  * Copyright (c) 2000-2003 Intel Corporation
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * - Redistributions of source code must retain the above copyright notice,
10  * this list of conditions and the following disclaimer.
11  * - Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  * - Neither name of Intel Corporation nor the names of its contributors
15  * may be used to endorse or promote products derived from this software
16  * without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  *
30  **************************************************************************/
31 
32 
33 #ifndef IXML_H
34 #define IXML_H
35 
36 
46 #include "UpnpGlobal.h" /* For EXPORT_SPEC */
47 
48 
49 typedef int BOOL;
50 
51 
55 #define DOMString char *
56 /*typedef char *DOMString;*/
57 
58 
59 #ifndef TRUE
60 #define TRUE 1
61 #endif
62 
63 #ifndef FALSE
64 #define FALSE 0
65 #endif
66 
67 #ifndef IN
68 #define IN
69 #endif
70 
71 #ifndef OUT
72 #define OUT
73 #endif
74 
75 #ifndef INOUT
76 #define INOUT
77 #endif
78 
79 
99 typedef enum {
100  eINVALID_NODE = 0,
101  eELEMENT_NODE = 1,
102  eATTRIBUTE_NODE = 2,
103  eTEXT_NODE = 3,
104  eCDATA_SECTION_NODE = 4,
105  eENTITY_REFERENCE_NODE = 5,
106  eENTITY_NODE = 6,
107  ePROCESSING_INSTRUCTION_NODE = 7,
108  eCOMMENT_NODE = 8,
109  eDOCUMENT_NODE = 9,
110  eDOCUMENT_TYPE_NODE = 10,
111  eDOCUMENT_FRAGMENT_NODE = 11,
112  eNOTATION_NODE = 12,
114 
115 
119 typedef enum {
120  IXML_SUCCESS = 0,
121 
122  IXML_INDEX_SIZE_ERR = 1,
123  IXML_DOMSTRING_SIZE_ERR = 2,
124  IXML_HIERARCHY_REQUEST_ERR = 3,
125  IXML_WRONG_DOCUMENT_ERR = 4,
126  IXML_INVALID_CHARACTER_ERR = 5,
127  IXML_NO_DATA_ALLOWED_ERR = 6,
128  IXML_NO_MODIFICATION_ALLOWED_ERR = 7,
129  IXML_NOT_FOUND_ERR = 8,
130  IXML_NOT_SUPPORTED_ERR = 9,
131  IXML_INUSE_ATTRIBUTE_ERR = 10,
132  IXML_INVALID_STATE_ERR = 11,
133  IXML_SYNTAX_ERR = 12,
134  IXML_INVALID_MODIFICATION_ERR = 13,
135  IXML_NAMESPACE_ERR = 14,
136  IXML_INVALID_ACCESS_ERR = 15,
137 
138  IXML_NO_SUCH_FILE = 101,
139  IXML_INSUFFICIENT_MEMORY = 102,
140  IXML_FILE_DONE = 104,
141  IXML_INVALID_PARAMETER = 105,
142  IXML_FAILED = 106,
143  IXML_INVALID_ITEM_NUMBER = 107,
145 
146 
147 #define DOCUMENTNODENAME "#document"
148 #define TEXTNODENAME "#text"
149 #define CDATANODENAME "#cdata-section"
150 
151 
152 typedef struct _IXML_Document *Docptr;
153 
154 
155 typedef struct _IXML_Node *Nodeptr;
156 
157 
161 typedef struct _IXML_Node
162 {
163  DOMString nodeName;
164  DOMString nodeValue;
165  IXML_NODE_TYPE nodeType;
166  DOMString namespaceURI;
167  DOMString prefix;
168  DOMString localName;
169  BOOL readOnly;
170 
171  Nodeptr parentNode;
172  Nodeptr firstChild;
173  Nodeptr prevSibling;
174  Nodeptr nextSibling;
175  Nodeptr firstAttr;
176  Docptr ownerDocument;
177 } IXML_Node;
178 
179 
183 typedef struct _IXML_Document
184 {
185  IXML_Node n;
186 } IXML_Document;
187 
188 
192 typedef struct _IXML_CDATASection
193 {
194  IXML_Node n;
196 
197 
201 typedef struct _IXML_Element
202 {
203  IXML_Node n;
204  DOMString tagName;
205 } IXML_Element;
206 
207 
211 typedef struct _IXML_ATTR
212 {
213  IXML_Node n;
214  BOOL specified;
215  IXML_Element *ownerElement;
216 } IXML_Attr;
217 
218 
222 typedef struct _IXML_Text
223 {
224  IXML_Node n;
225 } IXML_Text;
226 
227 
231 typedef struct _IXML_NodeList
232 {
233  IXML_Node *nodeItem;
234  struct _IXML_NodeList *next;
235 } IXML_NodeList;
236 
237 
241 typedef struct _IXML_NamedNodeMap
242 {
243  IXML_Node *nodeItem;
244  struct _IXML_NamedNodeMap *next;
246 
247 /* @} DOM Interfaces */
248 
249 
250 
251 #ifdef __cplusplus
252 extern "C" {
253 #endif
254 
255 
277  IXML_Node *nodeptr);
278 
279 
290  IXML_Node *nodeptr);
291 
292 
307  IXML_Node *nodeptr,
309  const char *newNodeValue);
310 
311 
317 EXPORT_SPEC unsigned short ixmlNode_getNodeType(
319  IXML_Node *nodeptr);
320 
321 
330  IXML_Node *nodeptr);
331 
332 
344  IXML_Node *nodeptr);
345 
346 
355  IXML_Node *nodeptr);
356 
357 
366  IXML_Node *nodeptr);
367 
368 
377  IXML_Node *nodeptr);
378 
379 
388  IXML_Node *nodeptr);
389 
390 
399  IXML_Node *nodeptr);
400 
401 
414  IXML_Node *nodeptr);
415 
416 
428  IXML_Node *nodeptr);
429 
430 
441 EXPORT_SPEC const DOMString
444  IXML_Node *nodeptr);
445 
446 
460  IXML_Node *nodeptr);
461 
489  IXML_Node *nodeptr,
491  IXML_Node * newChild,
494  IXML_Node * refChild);
495 
496 
521  IXML_Node *nodeptr,
523  IXML_Node *newChild,
525  IXML_Node *oldChild,
527  IXML_Node **returnNode);
528 
529 
548  IXML_Node *nodeptr,
550  IXML_Node *oldChild,
552  IXML_Node **returnNode);
553 
554 
574  IXML_Node *nodeptr,
576  IXML_Node * newChild);
577 
578 
586  IXML_Node *nodeptr);
587 
588 
602  IXML_Node *nodeptr,
605  BOOL deep);
606 
607 
617  IXML_Node *nodeptr);
618 
619 
625  IXML_Node *nodeptr);
626 
627 /* @} Interface Node */
628 
629 
630 
650  IXML_Attr *attrNode);
651 
652 
653 /* @} Interface Attr */
654 
655 
656 
677  IXML_CDATASection *nodeptr);
678 
679 
685  IXML_CDATASection *nodeptr);
686 
687 
688 /* @} Interface CDATASection */
689 
690 
691 
711  IXML_Document *nodeptr);
712 
713 
728  IXML_Document **doc);
729 
730 
738 
739 
760  IXML_Document *doc,
762  const DOMString tagName,
764  IXML_Element **rtElement);
765 
766 
780  IXML_Document *doc,
782  const DOMString tagName);
783 
784 
801  IXML_Document *doc,
804  const DOMString data,
806  IXML_Node **textNode);
807 
808 
816  IXML_Document *doc,
819  const DOMString data);
820 
821 
838  IXML_Document *doc,
840  const DOMString data,
842  IXML_CDATASection** cdNode);
843 
844 
852  IXML_Document *doc,
854  const DOMString data);
855 
856 
868  IXML_Document *doc,
870  const char *name);
871 
872 
889  IXML_Document *doc,
891  const char *name,
893  IXML_Attr **attrNode);
894 
895 
906  IXML_Document *doc,
908  const DOMString tagName);
909 
910 
911 /*
912  * introduced in DOM level 2
913  */
914 
915 
933  IXML_Document *doc,
935  const DOMString namespaceURI,
937  const DOMString qualifiedName,
939  IXML_Element **rtElement);
940 
941 
952  IXML_Document *doc,
954  const DOMString namespaceURI,
956  const DOMString qualifiedName);
957 
958 
976  IXML_Document *doc,
978  const DOMString namespaceURI,
980  const DOMString qualifiedName,
982  IXML_Attr **attrNode);
983 
984 
995  IXML_Document *doc,
997  const DOMString namespaceURI,
999  const DOMString qualifiedName);
1000 
1001 
1015  IXML_Document *doc,
1018  const DOMString namespaceURI,
1021  const DOMString localName);
1022 
1023 
1031  IXML_Document *doc,
1033  const DOMString tagName);
1034 
1035 
1045  IXML_Document *doc);
1046 
1047 
1080  IXML_Document *doc,
1082  IXML_Node * importNode,
1085  BOOL deep,
1087  IXML_Node **rtNode);
1088 
1089 
1090 /* @} Interface Document */
1091 
1092 
1093 
1094 
1113  IXML_Element *element);
1114 
1115 
1123  IXML_Element *element);
1124 
1125 
1134  IXML_Element* element,
1136  const DOMString name);
1137 
1138 
1157  IXML_Element *element,
1159  const DOMString name,
1162  const DOMString value);
1163 
1164 
1175  IXML_Element *element,
1177  const DOMString name);
1178 
1179 
1190  IXML_Element *element,
1192  const DOMString name);
1193 
1194 
1214  IXML_Element *element,
1216  IXML_Attr* newAttr,
1219  IXML_Attr** rtAttr);
1220 
1221 
1234  IXML_Element *element,
1236  IXML_Attr* oldAttr,
1238  IXML_Attr** rtAttr);
1239 
1240 
1250  IXML_Element *element,
1252  const DOMString tagName);
1253 
1254 
1255 /*
1256  * Introduced in DOM 2
1257  */
1258 
1259 
1268  IXML_Element *element,
1270  const DOMString namespaceURI,
1272  const DOMString localname);
1273 
1274 
1299  IXML_Element *element,
1301  const DOMString namespaceURI,
1303  const DOMString qualifiedName,
1305  const DOMString value);
1306 
1307 
1321  IXML_Element *element,
1323  const DOMString namespaceURI,
1325  const DOMString localName);
1326 
1327 
1336  IXML_Element *element,
1338  const DOMString namespaceURI,
1340  const DOMString localName);
1341 
1342 
1365  IXML_Element *element,
1367  IXML_Attr *newAttr,
1369  IXML_Attr **rcAttr);
1370 
1371 
1381  IXML_Element *element,
1384  const DOMString namespaceURI,
1387  const DOMString localName);
1388 
1389 
1399  IXML_Element *element,
1401  const DOMString name);
1402 
1403 
1413  IXML_Element *element,
1415  const DOMString namespaceURI,
1417  const DOMString localName);
1418 
1419 
1425  IXML_Element *element);
1426 
1427 
1428 /* @} Interface Element */
1429 
1430 
1431 
1451  IXML_NamedNodeMap *nnMap);
1452 
1453 
1462  IXML_NamedNodeMap *nnMap,
1464  const DOMString name);
1465 
1466 
1476  IXML_NamedNodeMap *nnMap,
1478  IXML_Node *arg);
1479 
1480 
1488  IXML_NamedNodeMap *nnMap,
1490  const DOMString name);
1491 
1492 
1502  IXML_NamedNodeMap *nnMap,
1504  unsigned long index);
1505 
1506 
1507 /*
1508  * Introduced in DOM level 2
1509  */
1510 
1511 
1520  IXML_NamedNodeMap *nnMap,
1522  const DOMString *namespaceURI,
1524  const DOMString localName);
1525 
1526 
1536  IXML_NamedNodeMap *nnMap,
1538  IXML_Node *arg);
1539 
1540 
1549  IXML_NamedNodeMap *nnMap,
1551  const DOMString namespaceURI,
1553  const DOMString localName);
1554 
1555 
1562  IXML_NamedNodeMap *nnMap);
1563 
1564 
1565 /* @} Interface NodeMap */
1566 
1567 
1568 
1589  IXML_NodeList *nList,
1591  unsigned long index);
1592 
1593 
1599 EXPORT_SPEC unsigned long ixmlNodeList_length(
1601  IXML_NodeList *nList);
1602 
1603 
1612  IXML_NodeList *nList);
1613 
1614 
1615 /* @} Interface NodeList */
1616 
1617 
1618 
1654  IXML_Document *doc);
1655 
1656 
1676  IXML_Node *doc
1677 );
1678 
1679 
1700  IXML_Document *doc);
1701 
1702 
1719  IXML_Node *doc);
1720 
1721 
1734  char errorChar);
1735 
1736 
1744  const char *buffer);
1745 
1746 
1763  const char *buffer,
1765  IXML_Document** doc);
1766 
1767 
1775  const char* xmlFile);
1776 
1777 
1794  const char *xmlFile,
1797  IXML_Document **doc);
1798 
1799 
1808  const DOMString src);
1809 
1810 
1816  DOMString buf);
1817 
1818 
1819 /* @} IXML API */
1820 
1821 
1822 #ifdef __cplusplus
1823 }
1824 #endif
1825 
1826 
1827 /* @} XMLAPI XML API */
1828 
1829 
1830 #endif /* IXML_H */
1831