00001 #ifndef __AIXMLElement__
00002 #define __AIXMLElement__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033
00034 #ifndef __AIEntry__
00035 #include "AIEntry.h"
00036 #endif
00037
00038 #ifndef __AIDict__
00039 #include "AIDictionary.h"
00040 #endif
00041
00042 #ifndef __AIArray__
00043 #include "AIArray.h"
00044 #endif
00045
00046
00047 #include "AIHeaderBegin.h"
00048
00051
00052
00053
00054
00055
00056
00057 #define kAIXMLNodeSuite "AI XML Node Suite"
00058 #define kAIXMLNodeSuiteVersion5 AIAPI_VERSION(5)
00059 #define kAIXMLNodeSuiteVersion kAIXMLNodeSuiteVersion5
00060 #define kAIXMLNodeVersion kAIXMLNodeSuiteVersion
00061
00062 #define kAIXMLDocumentSuite "AI XML Document Suite"
00063 #define kAIXMLDocumentSuiteVersion4 AIAPI_VERSION(4)
00064 #define kAIXMLDocumentSuiteVersion kAIXMLDocumentSuiteVersion4
00065 #define kAIXMLDocumentVersion kAIXMLDocumentSuiteVersion
00066
00067 #define kAIXMLElementSuite "AI XML Element Suite"
00068 #define kAIXMLElementSuiteVersion4 AIAPI_VERSION(4)
00069 #define kAIXMLElementSuiteVersion kAIXMLElementSuiteVersion4
00070 #define kAIXMLElementVersion kAIXMLElementSuiteVersion
00071
00072 #define kAIXMLNodeListSuite "AI XML Node List Suite"
00073 #define kAIXMLNodeListSuiteVersion3 AIAPI_VERSION(3)
00074 #define kAIXMLNodeListSuiteVersion kAIXMLNodeListSuiteVersion3
00075 #define kAIXMLNodeListVersion kAIXMLNodeListSuiteVersion
00076
00077 #define kAIXMLNamedNodeMapSuite "AI XML Named Node Map Suite"
00078 #define kAIXMLNamedNodeMapSuiteVersion4 AIAPI_VERSION(4)
00079 #define kAIXMLNamedNodeMapSuiteVersion kAIXMLNamedNodeMapSuiteVersion4
00080 #define kAIXMLNamedNodeMapVersion kAIXMLNamedNodeMapSuiteVersion
00081
00082
00083
00084
00085
00086
00087
00090 #define kAIXMLIndexSizeErr 'xInd'
00091
00094 #define kAIXMLDOMStringSizeErr 'xDSt'
00095
00098 #define kAIXMLHierarchyRequestErr 'xHer'
00099
00102 #define kAIXMLWrongDocumentErr 'xDoc'
00103
00106 #define kAIXMLInvalidCharacterErr 'xChr'
00107
00110 #define kAIXMLNoDataAllowedErr 'x!dt'
00111
00114 #define kAIXMLNoModifyAllowedErr 'x!mo'
00115
00118 #define kAIXMLNotFoundErr 'x!fd'
00119
00122 #define kAIXMLNotSupportedErr 'x!sp'
00123
00126 #define kAIXMLInUseAttributeErr 'xInU'
00127
00128
00129
00130
00131
00132
00133
00134
00136 typedef struct _AIXMLNodeList *AIXMLNodeListRef;
00138 typedef struct _AIXMLNamedNodeMap *AIXMLNamedNodeMapRef;
00141 typedef struct _AIXMLName *AIXMLName;
00144 typedef AIEntryRef AIXMLString;
00145
00148 typedef ai::int32 AIXMLNodeType;
00150 enum AIXMLNodeTypeValue {
00151 kAIXMLUnknownNode,
00153 kAIXMLElementNode,
00155 kAIXMLAttributeNode,
00157 kAIXMLTextNode,
00159 kAIXMLCDATASectionNode,
00161 kAIXMLCommentNode,
00163 kAIXMLEntityReferenceNode,
00165 kAIXMLEntityNode,
00167 kAIXMLProcessingInstructionNode,
00169 kAIXMLDocumentNode,
00171 kAIXMLDocumentTypeNode,
00173 kAIXMLDocumentFragmentNode,
00175 kAIXMLNotationNode
00176 };
00177
00178
00179
00180
00181
00182
00183
00184
00185
00194 #define kAIMetadataSyncNotifier "AI Metadata Sync Notifier"
00195
00196
00197
00198
00199
00200
00201
00202
00203
00235 typedef struct {
00236
00237
00238
00246 AIAPI ai::int32 (*AddRef) (AIXMLNodeRef node);
00247
00256 AIAPI ai::int32 (*Release) (AIXMLNodeRef node);
00257
00262 AIAPI AIErr (*Clone) (AIXMLNodeRef src, AIXMLNodeRef* dst );
00263
00268 AIAPI AIErr (*Copy) (AIXMLNodeRef node, AIXMLNodeRef src);
00269
00274 AIAPI AIErr (*GetNodeType)(AIXMLNodeRef node, AIXMLNodeType *type);
00275
00280 AIAPI AIErr (*GetNodeName)(AIXMLNodeRef node, AIXMLName *name);
00281
00286 AIAPI AIErr (*SetNodeName)(AIXMLNodeRef node, AIXMLName name);
00287
00292 AIAPI AIErr (*GetNodeValue)(AIXMLNodeRef node, AIXMLString *value);
00293
00298 AIAPI AIErr (*SetNodeValue)(AIXMLNodeRef node, AIXMLString value);
00299
00304 AIAPI AIErr (*GetChildNodes)(AIXMLNodeRef node, AIXMLNodeListRef *nodes);
00305
00311 AIAPI AIErr (*GetAttributes)(AIXMLNodeRef node, AIXMLNamedNodeMapRef *attributes);
00312
00319 AIAPI AIErr (*InsertBefore)(AIXMLNodeRef node, AIXMLNodeRef newchild, AIXMLNodeRef refchild);
00320
00326 AIAPI AIErr (*ReplaceChild)(AIXMLNodeRef node, AIXMLNodeRef newchild, AIXMLNodeRef oldchild);
00327
00332 AIAPI AIErr (*RemoveChild)(AIXMLNodeRef node, AIXMLNodeRef oldchild);
00333
00338 AIAPI AIErr (*AppendChild)(AIXMLNodeRef node, AIXMLNodeRef newchild);
00339
00344 AIAPI AIErr (*HasChildNodes)(AIXMLNodeRef node, AIBoolean *haschildren);
00345
00346
00347
00353 AIAPI AIXMLName (*NameFromString) (const char* string);
00354
00360 AIAPI const char* (*StringFromName) (AIXMLName name);
00361
00367 AIAPI AIXMLName (*NameFromUnicodeString) (const ai::UnicodeString& string);
00368
00373 AIAPI AIErr (*UnicodeStringFromName) (AIXMLName name, ai::UnicodeString& string);
00374
00375
00376
00378 AIAPI AIErr (*GetData) (AIXMLNodeRef node, AIDictKey key, AIEntryRef *value);
00379
00381 AIAPI AIErr (*SetData) (AIXMLNodeRef node, AIDictKey key, AIEntryRef value);
00382
00384 AIAPI AIErr (*RemoveData) (AIXMLNodeRef node, AIDictKey key);
00385
00386
00387
00401 AIAPI AIErr (*Compare) (AIXMLNodeRef node1, AIXMLNodeRef node2, AIBoolean deep, ai::int32 *result);
00402
00403 } AIXMLNodeSuite;
00404
00405
00406
00407
00408
00427 typedef struct {
00428
00434 AIAPI AIErr (*GetDocumentElement)(AIXMLNodeRef *element);
00435
00441 AIAPI AIErr (*GetDocumentMetadata)(AIXMLNodeRef *element);
00442
00447 AIAPI AIErr (*CreateElement)(AIXMLName name, AIXMLNodeRef *element);
00448
00454 AIAPI AIErr (*CreateAttribute)(AIXMLName name, AIXMLString value, AIXMLNodeRef *attribute);
00455
00460 AIAPI AIErr (*CreateTextNode)(AIXMLString string, AIXMLNodeRef *text);
00461
00466 AIAPI AIErr (*CreateComment)(AIXMLString string, AIXMLNodeRef *comment);
00467
00472 AIAPI AIErr (*CreateCDATASection)(AIXMLString string, AIXMLNodeRef *cdata);
00473
00484 AIAPI AIErr (*GetElementsByTagName)(AIXMLNodeRef node, AIXMLName name, ai::int32 *count, AIXMLNodeRef *match);
00485
00486 } AIXMLDocumentSuite;
00487
00488
00489
00490
00501 typedef struct {
00502
00503
00504
00510 AIAPI AIErr (*GetAttribute)(AIXMLNodeRef element, AIXMLName name, AIXMLString *value);
00511
00517 AIAPI AIErr (*SetAttribute)(AIXMLNodeRef element, AIXMLName name, AIXMLString value);
00518
00523 AIAPI AIErr (*RemoveAttribute)(AIXMLNodeRef element, AIXMLName name);
00524
00525 } AIXMLElementSuite;
00526
00527
00528
00539 typedef struct {
00540
00546 AIAPI AIErr (*GetLength)(AIXMLNodeListRef nodes, ai::int32 *length);
00547
00554 AIAPI AIErr (*GetItem)(AIXMLNodeListRef nodes, ai::int32 index, AIXMLNodeRef *node);
00555
00556
00557
00566 AIAPI AIErr (*SwapNodes) (AIXMLNodeListRef list1, AIXMLNodeListRef list2, ai::int32 position1, ai::int32 position2);
00567
00568 } AIXMLNodeListSuite;
00569
00570
00571
00582 typedef struct {
00583
00589 AIAPI AIErr (*GetLength)(AIXMLNamedNodeMapRef map, ai::int32 *length);
00590
00597 AIAPI AIErr (*GetItem)(AIXMLNamedNodeMapRef map, ai::int32 index, AIXMLNodeRef *node);
00598
00604 AIAPI AIErr (*GetNamedItem)(AIXMLNamedNodeMapRef map, AIXMLName name, AIXMLNodeRef *node);
00605
00610 AIAPI AIErr (*SetNamedItem)(AIXMLNamedNodeMapRef map, AIXMLNodeRef node);
00611
00617 AIAPI AIErr (*RemoveNamedItem)(AIXMLNamedNodeMapRef map, AIXMLNodeRef node);
00618
00619 } AIXMLNamedNodeMapSuite;
00620
00621
00622
00623 #include "AIHeaderEnd.h"
00624
00625
00626 #endif