Adobe.com
Contents Suites Classes Class Index Member Index

AIXMLElement.h

Go to the documentation of this file.
00001 #ifndef __AIXMLElement__
00002 #define __AIXMLElement__
00003 
00004 /*
00005  *        Name: AIXMLNodeRef.h
00006  *   $Revision: 1 $
00007  *      Author:
00008  *        Date:
00009  *     Purpose: Adobe Illustrator XML node suite.
00010  *
00011  * ADOBE SYSTEMS INCORPORATED
00012  * Copyright 1986-2007 Adobe Systems Incorporated.
00013  * All rights reserved.
00014  *
00015  * NOTICE:  Adobe permits you to use, modify, and distribute this file 
00016  * in accordance with the terms of the Adobe license agreement 
00017  * accompanying it. If you have received this file from a source other 
00018  * than Adobe, then your use, modification, or distribution of it 
00019  * requires the prior written permission of Adobe.
00020  *
00021  */
00022 
00023 
00024 /*******************************************************************************
00025  **
00026  **     Imports
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  **     Suite name and version
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  **     Constants
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  **     Types
00132  **
00133  **/
00134 
00136 typedef struct _AIXMLNodeList *AIXMLNodeListRef;
00138 typedef struct _AIXMLNamedNodeMap *AIXMLNamedNodeMapRef;
00141 typedef struct _AIXMLName *AIXMLName;
00144 typedef AIEntryRef AIXMLString;                 // entry of type string.
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  **     Notifier
00183  **
00184  **/
00185 
00194 #define kAIMetadataSyncNotifier                 "AI Metadata Sync Notifier"
00195 
00196 
00197 /*******************************************************************************
00198  **
00199  **     Suites
00200  **
00201  **/
00202 
00203 //  ------ AIXMLNodeSuite -------------------------
00235 typedef struct {
00236 
00237         // -- nodes --
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         // -- names --
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         // -- private data --
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         // -- utilities --
00387 
00401         AIAPI AIErr (*Compare) (AIXMLNodeRef node1, AIXMLNodeRef node2, AIBoolean deep, ai::int32 *result);
00402 
00403 } AIXMLNodeSuite;
00404 
00405 
00406 
00407 
00408 //  ------ AIXMLDocumentSuite -------------------------
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 //  ------ AIXMLElementSuite -------------------------
00501 typedef struct {
00502 
00503         // -- attributes --
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 //  ------ AIXMLNodeListSuite -------------------------
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         // -- utilities --
00557 
00566         AIAPI AIErr (*SwapNodes) (AIXMLNodeListRef list1, AIXMLNodeListRef list2, ai::int32 position1, ai::int32 position2);
00567 
00568 } AIXMLNodeListSuite;
00569 
00570 
00571 //  ------ AIXMLNamedNodeMapSuite -------------------------
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


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2014 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks