00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef XML_SCHEMA_BUILDER_H
00018 #define XML_SCHEMA_BUILDER_H
00019
00028 #include <xml_schema_defines.h>
00029 #include <xml_schema_annotated.h>
00030 #include <xml_schema.h>
00031 #include <axiom.h>
00032 #include <axis2_hash.h>
00033 #include <xml_schema_collection.h>
00034 #include <axiom_util.h>
00040 typedef struct xml_schema_builder
00041 xml_schema_builder_t;
00042 typedef struct xml_schema_builder_ops
00043 xml_schema_builder_ops_t;
00044
00045 #define XML_SCHEMA_NS "http://www.w3.org/2001/XMLSchema"
00046
00047 #ifdef __cplusplus
00048 extern "C"
00049 {
00050 #endif
00051
00052 struct xml_schema_builder_ops
00053 {
00054 xml_schema_t* (AXIS2_CALL *
00055 build)(
00056 xml_schema_builder_t *builder,
00057 const axis2_env_t *env,
00058 axiom_document_t *om_doc,
00059 axis2_char_t *uri);
00060
00061 xml_schema_t* (AXIS2_CALL *
00062 build_with_root_node)(
00063 xml_schema_builder_t *builder,
00064 const axis2_env_t *env,
00065 axiom_node_t *om_node,
00066 axis2_char_t *uri);
00067
00068 axis2_status_t (AXIS2_CALL *
00069 free)(xml_schema_builder_t *builder,
00070 const axis2_env_t *env);
00071 };
00072
00073 struct xml_schema_builder
00074 {
00075 xml_schema_builder_ops_t *ops;
00076 };
00077
00078
00079 AXIS2_EXTERN xml_schema_builder_t * AXIS2_CALL
00080 xml_schema_builder_create(
00081 const axis2_env_t *env,
00082 xml_schema_collection_t *sch_collection);
00083
00084
00085
00086 #define XML_SCHEMA_BUILDER_FREE(builder, env) \
00087 ((builder)->ops->free(builder, env))
00088
00089 #define XML_SCHEMA_BUILDER_BUILD(builder, env, om_doc, uri) \
00090 ((builder)->ops->build(builder, env, om_doc, uri))
00091
00092 #define XML_SCHEMA_BUILDER_BUILD_WITH_ROOT_NODE(builder, env, om_node, uri) \
00093 ((builder)->ops->build_with_root_node(builder, env, om_node, uri))
00094
00095
00096
00098 #ifdef __cplusplus
00099 }
00100 #endif
00101 #endif