xml_schema_documentation.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef XML_SCHEMA_DOCUMENTATION_H
00018 #define XML_SCHEMA_DOCUMENTATION_H
00019 
00028 #include <xml_schema_defines.h>
00029 #include <xml_schema_obj.h>
00030 #include <axis2_hash.h>
00031 #include <axiom.h>
00032 
00038 typedef struct xml_schema_documentation 
00039                     xml_schema_documentation_t;
00040 typedef struct xml_schema_documentation_ops 
00041                     xml_schema_documentation_ops_t;
00042 
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif
00047 
00048 struct xml_schema_documentation_ops
00049 {
00054     axis2_status_t (AXIS2_CALL *
00055     free) (
00056             void *documentation,
00057             const axis2_env_t *env);
00058 
00059     axis2_hash_t *(AXIS2_CALL *
00060     super_objs) (
00061             void *documentation,
00062             const axis2_env_t *env);
00063 
00064     xml_schema_types_t (AXIS2_CALL *
00065     get_type) (
00066             void *documentation,
00067             const axis2_env_t *env);
00068 
00069     xml_schema_obj_t *(AXIS2_CALL *
00070     get_base_impl) (void *documentation,
00071                         const axis2_env_t *env);
00072     
00073     axis2_char_t *(AXIS2_CALL *
00074     get_source)(void *documentation,
00075                 const axis2_env_t *env);
00076 
00077     axis2_status_t (AXIS2_CALL *
00078     set_source) (void *documentation,
00079                 const axis2_env_t *env,
00080                 axis2_char_t *source);
00081 
00082     axiom_child_element_iterator_t *(AXIS2_CALL *
00083     get_markup) (void *documentation,
00084                     const axis2_env_t *env);
00085 
00086     axis2_status_t (AXIS2_CALL *
00087     set_markup) (void *documentation,
00088                  const axis2_env_t *env,
00089                  axiom_child_element_iterator_t *markup);
00090                  
00091     axis2_char_t *(AXIS2_CALL *
00092     get_language)(
00093             void *documentation,
00094             const axis2_env_t *env);
00095             
00096     axis2_status_t (AXIS2_CALL *
00097     set_language)(
00098             void *documentation,
00099             const axis2_env_t *env,
00100             axis2_char_t *language);            
00101 };
00102 
00103 struct xml_schema_documentation
00104 {
00105     xml_schema_obj_t base;
00106     xml_schema_documentation_ops_t *ops;
00107 };
00108 
00109 AXIS2_EXTERN xml_schema_documentation_t * AXIS2_CALL
00110 xml_schema_documentation_create(const axis2_env_t *env);
00111 
00112 
00113 /*********************** macros ***********************************************/
00114 
00115 #define XML_SCHEMA_DOCUMENTATION_FREE(documentation, env) \
00116       (((xml_schema_documentation_t *) documentation)->ops->\
00117             free(documentation, env))
00118 
00119 #define XML_SCHEMA_DOCUMENTATION_SUPER_OBJS(documentation, env) \
00120       (((xml_schema_documentation_t *) documentation)->ops->\
00121             super_objs(documentation, env))
00122 
00123 #define XML_SCHEMA_DOCUMENTATION_GET_TYPE(documentation, env) \
00124       (((xml_schema_documentation_t *) documentation)->ops->\
00125             GET_type(documentation, env))
00126 
00127 #define XML_SCHEMA_DOCUMENTATION_GET_SOURCE(documentation, env) \
00128       (((xml_schema_documentation_t *) documentation)->ops->\
00129             get_source(documentation, env))
00130 
00131 #define XML_SCHEMA_DOCUMENTATION_SET_SOURCE(documentation, env, source) \
00132       (((xml_schema_documentation_t *) documentation)->ops->\
00133             set_source(documentation, env, source))
00134 
00135 #define XML_SCHEMA_DOCUMENTATION_GET_MARKUP(documentation, env) \
00136       (((xml_schema_documentation_t *) documentation)->ops->\
00137             get_markup(documentation, env))
00138 
00139 #define XML_SCHEMA_DOCUMENTATION_SET_MARKUP(documentation, env, markup) \
00140       (((xml_schema_documentation_t *) documentation)->ops->\
00141             set_markup(documentation, env, markup))
00142 
00143 
00144 #define XML_SCHEMA_DOCUMENTATION_GET_LANGUAGE(documentation, env) \
00145         (((xml_schema_documentation_t*) documentation)->ops->\
00146             get_language(documentation, env))
00147             
00148 #define XML_SCHEMA_DOCUMENTATION_SET_LANGUAGE(documentation, env, language)\
00149         (((xml_schema_documentation_t *) documentation)->ops->\
00150             set_language(documentation, env, language))            
00151 
00152 /************************ end macros ******************************************/
00154 #ifdef __cplusplus
00155 }
00156 #endif
00157 #endif /* XML_SCHEMA_DOCUMENTATION_H */

Generated on Thu Oct 26 21:11:25 2006 for Axis2/C by  doxygen 1.4.7