xsdnode.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GWENHYWFAR_XSDNODE_H
00026 #define GWENHYWFAR_XSDNODE_H
00027
00028
00029 typedef struct GWEN_XSD_NODE GWEN_XSD_NODE;
00030
00031 #include <gwenhywfar/inherit.h>
00032 #include <gwenhywfar/list1.h>
00033
00034 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_XSD_NODE, GWENHYWFAR_API)
00035 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_XSD_NODE, GWEN_XsdNode, GWENHYWFAR_API)
00036
00037
00038 #include <gwenhywfar/xml.h>
00039 #include <gwenhywfar/db.h>
00040
00041
00042 typedef enum {
00043 GWEN_Xsd_NodeType_Unknown=0,
00044 GWEN_Xsd_NodeType_Any,
00045 GWEN_Xsd_NodeType_Element,
00046 GWEN_Xsd_NodeType_Attribute,
00047 GWEN_Xsd_NodeType_ComplexType,
00048 GWEN_Xsd_NodeType_SimpleType,
00049 GWEN_Xsd_NodeType_Group,
00050 GWEN_Xsd_NodeType_AttributeGroup,
00051 GWEN_Xsd_NodeType_Facet
00052 } GWEN_XSD_NODETYPE;
00053
00054
00055
00056 GWEN_XSD_NODE *GWEN_XsdNode_new(GWEN_XSD_NODE *parent,
00057 GWEN_XSD_NODETYPE t,
00058 const char *name);
00059 void GWEN_XsdNode_free(GWEN_XSD_NODE *xsdNode);
00060
00061
00062 GWEN_XSD_NODETYPE GWEN_XsdNode_GetNodeType(const GWEN_XSD_NODE *xsdNode);
00063 const char *GWEN_XsdNode_GetName(const GWEN_XSD_NODE *xsdNode);
00064
00065
00066 GWEN_XSD_NODE *GWEN_XsdNode_GetParent(const GWEN_XSD_NODE *xsdNode);
00067 GWEN_XSD_NODE_LIST *GWEN_XsdNode_GetChildren(const GWEN_XSD_NODE *xsdNode);
00068 void GWEN_XsdNode_AddChild(GWEN_XSD_NODE *xsdNode, GWEN_XSD_NODE *newChild);
00069 void GWEN_XsdNode_Unlink(GWEN_XSD_NODE *xsdNode);
00070
00071 uint32_t GWEN_XsdNode_GetFlags(const GWEN_XSD_NODE *xsdNode);
00072 void GWEN_XsdNode_SetFlags(GWEN_XSD_NODE *xsdNode, uint32_t fl);
00073 void GWEN_XsdNode_AddFlags(GWEN_XSD_NODE *xsdNode, uint32_t fl);
00074 void GWEN_XsdNode_SubFlags(GWEN_XSD_NODE *xsdNode, uint32_t fl);
00075
00076
00077 int GWEN_XsdNode_Read(GWEN_XSD_NODE *xsdNode,
00078 GWEN_XMLNODE *xmlNode,
00079 GWEN_DB_NODE *db);
00080
00081 int GWEN_XsdNode_Write(GWEN_XSD_NODE *xsdNode,
00082 GWEN_XMLNODE *xmlNode,
00083 GWEN_DB_NODE *db);
00084
00085
00086
00087 #endif
00088